问题标签 [named-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# - 在 C# 中将 lambda 函数作为命名参数传递
编译这个简单的程序:
那里没有什么奇怪的。如果我们在 lambda 函数体中出错:
编译器返回错误消息:
到现在为止还挺好。现在,让我们在调用中使用命名参数Foo
:
这一次,编译器消息有些混乱:
这是怎么回事?为什么它不报告实际错误?
请注意,如果我们使用匿名方法而不是 lambda,我们确实会收到正确的错误消息:
asp.net-mvc - ASP.NEt MVC 3.0 将 Int 数组作为参数从 Ajax ActionLink 传递到控制器
我可以将一个 Int 数组从 Ajax.ActionLink(来自我的视图)作为参数传递给 Controller
这是我的看法
在我的控制器中
c# - C# 中的命名参数是否有样式指南?
MSDN - 冒号后的空格。 这与 Objective-C 不同,我看不到人们在冒号后使用空格。我认为这可能是语法突出显示尚未赶上该功能的问题,但我没有使用良好 IDE 的经验。我在带有 Unity 的 Mac 上使用的 MonoDevelop 既不提供语法着色,也不提供命名参数的自动完成功能。 那里有很多;如果您知道我要求在内部或其他地方存在什么,请告诉我。我还没有找到它。
php - 使用 PHP 的 INTL MessageFormatter 的命名参数
我想在传递给 MessageFormater 的字符串中使用命名参数,就像这样
当我运行此代码时,我收到错误消息:
数字格式化失败:U_ILLEGAL_ARGUMENT_ERROR
然而
效果很好。
icu-project 网站报告称,自 ICU 3.8 起支持命名参数(见此处),我使用 4.2.1
独角兽在哪里?PHP 不支持 MessageFormatter 的命名参数?也许有替代方案?
scala - Scala 命名参数和默认参数以及隐式参数
考虑以下:
最后一个表达式导致以下错误:
但是,如果您为隐式参数 a 提供默认值,则没有问题:
但最后一行打印
虽然我会预料到
所以隐含值's'没有被拾取。如果您不向 f 提供任何参数而只是调用
然后隐式值被拾取,你得到
有人可以阐明这里发生了什么吗?
c# - C#:使用可选参数和命名参数重载构造函数?
这不是关于正确编码实践的问题,我只是在处理语义。假设我有以下构造函数...
是否可以这样使用命名参数......?
// 我只传递一个命名参数,依靠可选参数来处理其余的
还是不带参数调用构造函数 FooClass(string, int, bool)?如...
asp.net-mvc - 使用 Razor 视图的路由值集合中的动态命名参数
我使用辅助方法在视图中创建部分:
现在假设我@Html.ActionLink
在上面的帮助器中使用了这个自定义帮助器:
有没有办法在路由值集合中传递动态命名参数?在上面的例子中,我想要一个sectionName
动态命名的参数,这样我就可以在 action 方法中获得正确的值。它会根据sectionName
我当前作为参数传递给辅助方法的不同而有所不同......
现在我得到一个这样的链接:
它应该是:
City
或者我作为参数传递的任何内容,而不是sectionName
因为“City”是sectionName
我传递给辅助方法的参数的值。
我可以做一个开关,sectionName
但我只是想知道是否有一种更简洁的方法来实现这一点。
ruby - Ruby 中没有命名参数?
这太简单了,我简直不敢相信它抓住了我。
我倾向于使用散列作为参数选项,只是因为它是牛群的做法——而且它很干净。我以为这是标准。今天,经过大约 3 个小时的 bug 搜寻,我发现我碰巧使用的这个 gem 有一个错误,假设命名参数将被尊重。他们不是。
所以,我的问题是:在 Ruby (1.9.3) 中是否正式不尊重命名参数,或者这是我缺少的东西的副作用?如果不是,为什么不呢?
c# - 在 C# 中混合输出和命名参数:为什么输出参数也需要命名?
简短版本:参数后面的命名参数out
会产生编译器错误,但我在语言规范中找不到对这种行为的任何支持。
长版:
我正在使用Enum.TryParse<TEnum>
三参数重载,但我更愿意命名ignoreCase
参数以使我的代码更清晰,这样的调用:
使布尔值的含义不清楚(除非此方法已知1)。因此我想使用:
但是编译器将此报告为错误:
命名参数 'ignoreCase' 指定一个已经给出位置参数的参数
IDE 会突出显示该ignoreCase
参数。针对 .NET 4 的 VS2010 和针对 4 或 4.5 的 VS11 Beta 都给出了相同的结果。在所有情况下,命名out
参数都会消除错误。
我已经在框架和我的程序集中尝试了许多不同的方法(包括避免泛型)2:总是相同的结果:一个out
参数后跟一个命名参数会产生错误。
我看不出这个错误的原因,并且C# 语言规范的§7.5.1参数列表:版本 4.0似乎没有提供任何原因说明out
后面的命名参数应该给出错误。错误的文本似乎支持将其解释为错误:没有位置参数可以有效匹配ignoreCase
.
我对规范的阅读是错误的吗?或者这是一个编译器错误?
C# 7.2 更新
当使用 C# 7.2 取消调用时,对所有命名参数的限制必须遵循位置参数。
请参阅https://docs.microsoft.com/en-gb/dotnet/csharp/whats-new/csharp-7-2#non-trailing-named-arguments。
1因此,框架设计指南中的建议是首选enum
参数。
2例如:给定:
out
除非参数也被命名,否则此调用也会在命名参数上给出相同的错误:
ironpython - IronPython:从.net的字典中动态分配python命名参数
我想动态分配来自.net Dictionary 实例的参数值,如下所示:
我想找到一种以编程方式从字典中分配变量值的方法,如下所示:
我知道这可能不像我写的那样可能,但你明白了。
非常感谢你,
埃斯特班。