代码之家  ›  专栏  ›  技术社区  ›  pero

C#4.0的新“命名参数”特性不应该被称为“命名参数(named arguments)”吗?

  •  3
  • pero  · 技术社区  · 17 年前

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

    4 回复  |  直到 17 年前
        1
  •  11
  •   Sherm Pendley    17 年前

    哦,你想要的 参数 对不起,这是参数——参数在大厅左边两扇门外。

        2
  •  6
  •   Jon Skeet    17 年前

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

    我同意这会有所不同,术语很重要。

    “可选参数”当然没问题——这是在之前无法添加元数据的情况下向参数添加元数据:)(话虽如此,就生成的IL而言,它不是可选的……)

    你想让我向团队征求他们的反馈吗?

        3
  •  3
  •   Daniel Earwicker    17 年前

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

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

        4
  •  0
  •   nawfal Donny V.    12 年前

    我不知道现在是否值得添加,但MS称之为 命名参数 不管怎样。看见 named and optional arguments