问题标签 [optional-parameters]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 需要默认参数值的模板函数的首选设计是什么?
我目前正在清理一个充满函数模板的 API,并强烈希望编写以下代码。
当我调用这个模板时,我想这样做如下。
不幸的是,第二次调用无法编译,因为编译器无法推断出可选参数的类型。这是不幸的,因为我真的不在乎参数类型是什么,而是它的值是 NULL。另外,我想避免第三次调用的路线,因为它妨碍了可读性。
这导致我尝试使模板参数V
具有默认类型,这也不起作用,因为您不能将默认类型应用于函数模板参数(至少使用 VC++ 9.0)。
我唯一剩下的选择是引入一个doWork
对模板参数一无所知的重载V
。
这是解决这个问题的最佳方法吗?我看到的唯一缺点是,如果函数模板包含许多具有合适默认值的参数,我可能会引入许多琐碎的转发函数。
c# - C# 不支持手动内联方法有什么原因吗?那么可选参数呢?
是否有任何设计原因(比如他们放弃多继承的原因)?
或者它只是不够重要?
同样的问题适用于方法中的可选参数......这已经在vb.net的第一个版本中......所以肯定不会导致MS不允许可选参数的懒惰,可能是架构决定......而且似乎他们有改变主意,因为 C# 4 将包括那个..
有谁知道这个决定是什么以及他们为什么放弃它?
编辑:
也许你没有完全理解我。我最近正在研究一个计算程序(支持任何大小的数字,直到最后一位),其中某些方法每秒使用数百万次。
Add(1);
假设我有一个名为 Add(int num) 的方法,并且该方法经常使用 1 作为参数(而且我的意思不是重载——编写一个名为 AddOne 的新方法,并将 Add 方法复制到其中,除了num
我正在编写的不是使用1
. 这对你来说可能看起来很奇怪,但实际上速度更快。
(尽管它很丑)
这让我想知道为什么 C# 不支持手动内联,这在这里非常有用。
谢谢。(以及你为什么投票给我:S)
编辑2:
我问自己是否要添加这个。我非常熟悉为此类项目选择 dot net 等平台的怪异(和缺点),但我认为 dot net 优化比您想象的更重要……尤其是 Any CPU 等功能。
sql - SQL 2008 存储过程中的可选 where 子句/参数?
我正在编写一些更新表格的代码。根据用户想要做什么,它要么更新一大组记录,要么更新一个较小的记录。描述因素是组 ID。
用户可以选择是更新所有记录的表,还是只更新具有该 groupID 的记录。我想对两个实例使用相同的存储过程,其中可能有一些逻辑来区分场景。(我不希望用 90% 相同的代码编写两个存储过程。)
我不是存储过程方面的专家,我不确定是否可以传入可选参数,或者如何根据 groupID 是否存在动态生成 where 子句的一部分。欢迎任何建议。
谢谢!
java - java 可选参数
我想在java中编写一个平均方法,以便它可以消耗N个项目,返回它们的平均值:
我的想法是:
如何更改我的方法以使用任意数量的参数而不是 int[] args 以便按照我想要的方式工作?干杯
wcf - 向 WCF 操作添加新参数:选择?
在不要求客户端更新其 WSDL 的情况下,处理向现有操作添加新(可选)参数的最佳方式是什么?我不想更新命名空间来描述服务合同的新版本,因为这应该与旧客户端向后兼容。
我应该添加一个带有新参数的新操作,作为重载吗?或者我应该只是将参数添加到现有操作中?
这是我的操作:
应该是:
或者更简单地说,只需将其更改为:
后一种选择似乎最好,根据我的参考书,“对客户端的影响是没有的。新参数在服务处被初始化为默认值。 ”WCF是否将其初始化为所谓的默认值?如果是这样,默认值是多少?
asp.net - 我如何使用“?” mvc中的运算符?
我有一个 MVC 应用程序,我想使用这个?
选项。
请告诉我我该怎么做。我已经写了:
但是,在数据库中插入值时,我该如何使用它?
它给出以下错误:
powershell - 互斥powershell参数
设想
- 我正在使用 Visual Studio 2008 和 .NET 3.5 为 Powershell 2.0 编写一个 cmdlet
- cmdlet 需要 3 个参数。
我对 cmdlet 的预期语法是这样的:
- 读作用户必须为“-foo”或“-bar”提供一个值,但不能同时提供两者。
有效输入示例
无效输入示例
我的问题
- 我的问题是如何在 powershell 中执行此操作,以便它为我完成所有检查 - 或者这是否可能。
- 我知道我可以只为 foo 和 bar 使用两个可选参数,然后手动进行错误检查。这就是我目前实施的方式。
- 或者,我对不同方法的建议感兴趣。
sql-server-2008 - SQL Server 存储过程中的可选参数?
我在 SQL Server 2008 中编写了一些存储过程,想知道可选输入参数的概念在这里是否可行?
我想我总是可以为我不想使用的参数传入 NULL,检查存储过程中的值,然后从那里取东西,但我很感兴趣,如果这个概念在这里可用。谢谢!
php - CodeIgniter 中的可选参数
我正在尝试在 CodeIgniter 控制器中编写一个可以采用可选参数的函数。但是,我总是收到缺少参数的警告。我不是试图抑制警告 - 我试图将参数声明为可选(如果它们不存在,它们可能是空字符串,或其他东西)。
我错过了什么?
谢谢马拉
_