我想可能有这个命名的历史原因,其他语言也有类似的功能,但在我看来,参数总是在C#中有一个名称。参数是未命名的。还是有一个特定的原因为什么选择这个术语?不应该将C#4.0的新“命名参数”功能称为“命名参数”吗?
回答
是的,你是绝对正确的(无论如何,在我看来)。具有讽刺意味的是,虽然我通常对这些术语挑剔,但我仍然可以使用“参数传递”,当时我应该谈论“参数传递”。我想可以争辩说,在C#4.0之前,如果你调用一个方法,你不关心参数名称,而当你可以在参数中指定它们时,这些名字就成为重要元数据的一部分。
我同意它有所作为,而且这个术语很重要。
“可选参数”绝对可以,但是,如果之前无法添加元数据,则会将元数据添加到参数中:)(说了这么多,在生成的IL方面它不会是可选的......)
你想我问问球队的反馈吗?
乔恩,你是快速,无处不在:) 我认为,我阅读了一些你的博客或者你指出两者之间的区别的答案。我同意正确的术语很重要。 至于团队反馈,我建议您决定这是否如此重要。问候,Petar – 2008-11-20 17:34:09
我想我会离开这一个 - 然后 - 主要是因为即使团队改变文档等,它将被*世界无论如何称为“命名参数”。有多少人通过他们的“自动实现的属性”的真实名称来称呼“自动属性”? – 2008-11-20 21:07:34
我不这么认为。名字是相当明确的参数名称,因为它们被定义并在方法定义中给出了特定的含义,在那里它们被正确地称为方法的参数。在呼叫站点,参数现在可以用它们为其提供值的参数的名称进行标记。
新术语是指方法调用者的角度 - 这是合乎逻辑的,因为这是功能适用的地方。以前,呼叫者只需要将参数视为“定位参数”。现在,他们可以选择将它们视为“命名参数” - 因此名称。
我不知道现在是否值得添加它,但是MS无论如何称其为命名参数。见named and optional arguments
- 1. 功能命名参数问题默认
- 2. MS Access,命名参数和列名称
- 3. 命名参数和智能
- 4. 命名参数Console.WriteLine c#
- 5. 命名参数和C#
- 6. 命名参数:C#vs Python
- 7. 命名的Javascript功能参数VS参数对象
- 8. 'Get'方法名称应该包含参数的名称吗?
- 9. Velocity命名参数为宏
- 10. 将命名参数命名为Ruby中的局部变量
- 11. 参数不存在作为命名参数,即使名称很好
- 12. Clojure - 命名参数
- 13. 与“命名参数”
- 14. 与命名参数
- 15. 命名参数通过传递命名的参数CakePHP中
- 16. 如何将参数命名为UDF?
- 17. 的Java命名参数的名称(甲骨文JDBC功能的结果)
- 18. Java8上的命名参数
- 19. sp_executesql中的命名参数
- 20. 重命名参数TestMethod的
- 21. Ocaml的命名参数
- 22. 命名参数的使用
- 23. 命名参数的Anorm seq
- 24. 值不能为空。参数名称:incomingMarkupParser
- 25. 值不能为空。参数名称:uri
- 26. 值不能为空。参数名称:httpContext
- 27. 值不能为空。参数名称:流
- 28. 值不能为空,参数名称:viewInfo
- 29. Objective-C中参数的命名规范
- 30. JavaScript中的C#类命名参数?
相关:http://stackoverflow.com/questions/156767/whats-the-difference-between-an-argument-and-a-parameter – 2012-08-21 01:24:02