我认为这个命名可能有历史原因,而且其他语言也有相似的功能,但在我看来参数总是在C#中有一个名字。争论是未命名的。或者选择这个术语有什么特别的原因吗?
答案 0 :(得分:11)
哦,你想要参数!对不起,这是参数 - 参数是左边大厅的两个门。
答案 1 :(得分:6)
是的,你是完全正确的(无论如何,在我看来)。具有讽刺意味的是,虽然我对这些术语通常很挑剔,但在我应该谈论“论证传递”时,我仍然使用“参数传递”。我想有人可能会争辩说,在C#4.0之前,如果你正在调用一个方法而不关心参数名,那么当你可以在参数上指定它们时,名称也会成为重要元数据的一部分。
我同意它有所作为,这个术语很重要。
“可选参数”肯定是可以的 - 当你在之前不能这样做时,它会在参数中添加元数据:)(尽管如此,就生成的IL来说,它不会是可选的......)< / p>
您是否希望我向团队提出反馈意见?
答案 2 :(得分:3)
我不这么认为。这些名称绝对是参数的名称,因为它们是在方法定义中定义并赋予特定含义的,其中它们被正确地称为方法的参数。在调用站点,现在可以使用为其提供值的参数名称标记参数。
新术语指的是方法调用者的视角 - 这是合乎逻辑的,因为这是特征适用的地方。以前,调用者只需将参数视为“定位参数”。现在,他们可以选择将它们视为“命名参数” - 因此得名。
答案 3 :(得分:0)
我不知道它现在是否值得添加,但无论如何,MS称之为命名参数。见named and optional arguments