C#4.0的新“命名参数”功能不应该被称为“命名参数”吗?

时间:2008-11-20 17:12:26

标签: c#-4.0 parameters arguments terminology named-parameters

我认为这个命名可能有历史原因,而且其他语言也有相似的功能,但在我看来参数总是在C#中有一个名字。争论是未命名的。或者选择这个术语有什么特别的原因吗?

4 个答案:

答案 0 :(得分:11)

哦,你想要参数!对不起,这是参数 - 参数是左边大厅的两个门。

答案 1 :(得分:6)

是的,你是完全正确的(无论如何,在我看来)。具有讽刺意味的是,虽然我对这些术语通常很挑剔,但在我应该谈论“论证传递”时,我仍然使用“参数传递”。我想有人可能会争辩说,在C#4.0之前,如果你正在调用一个方法而不关心参数名,那么当你可以在参数上指定它们时,名称也会成为重要元数据的一部分。

我同意它有所作为,这个术语很重要。

“可选参数”肯定是可以的 - 当你在之前不能这样做时,它会在参数中添加元数据:)(尽管如此,就生成的IL来说,它不会是可选的......)< / p>

您是否希望我向团队提出反馈意见?

答案 2 :(得分:3)

我不这么认为。这些名称绝对是参数的名称,因为它们是在方法定义中定义并赋予特定含义的,其中它们被正确地称为方法的参数。在调用站点,现在可以使用为其提供值的参数名称标记参数。

新术语指的是方法调用者的视角 - 这是合乎逻辑的,因为这是特征适用的地方。以前,调用者只需将参数视为“定位参数”。现在,他们可以选择将它们视为“命名参数” - 因此得名。

答案 3 :(得分:0)

我不知道它现在是否值得添加,但无论如何,MS称之为命名参数。见named and optional arguments