3

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

4

4 回答 4

11

哦,你想要争论!抱歉,这是参数 - 参数是左侧大厅的两扇门。

于 2008-11-20T17:32:11.380 回答
6

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

我同意它会有所作为,而且术语很重要。

不过,“可选参数”绝对没问题 - 当您之前无法这样做时,它会将元数据添加到参数中:)(话虽如此,就生成的 IL 而言,它不是可选的......)

你想让我向团队询问他们的反馈吗?

于 2008-11-20T17:24:49.430 回答
3

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

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

于 2009-02-09T11:26:41.187 回答
0

我不知道它现在是否值得添加,但无论如何MS 都称它为命名参数。请参阅命名参数和可选参数

于 2013-12-22T04:14:35.457 回答