argument_name 和命名参数中的 argument_value?

argument_name and an argument_value in a named argument?

最近我一直在讨论有关 C# 中关于方法的参数的主题。在阅读 Expressions 时,我看到了以下摘录:

An argument_list consists of one or more arguments, separated by commas. Each argument consists of an optional argument_name followed by an argument_value. An argument with an argument_name is referred to as a named argument, whereas an argument without an argument_name is a positional argument.

代码示例 - 位置参数:

    public static void Main()
    {
        // two positional arguments in the argument-list
        CustomStaticMethod(4, "hello"); 
    }

    public static void CustomStaticMethod(int num, string word)
    {
        // ...
    }

代码示例 - 命名参数:

    public static void Main()
    {
        // two named arguments in the argument-list
        CustomStaticMethod(word: "hello", num: 4);
    }

    public static void CustomStaticMethod(int num, string word)
    {
        // ...
    }

关于命名的 argument_nameargument_value 的 C# 文档摘录是什么意思争论?

在您的代码中:CustomStaticMethod(word: "hello", num: 4);

当您提供 <name>: <value> 格式的参数时,该参数是 named argument.

其中:

  • word是参数名,
  • "hello" 是参数值。

现在考虑这个案例:

public static void CustomStaticMethod(string foo, int num, string bar) { 
    //...
}

您可以像这样混合位置参数和命名参数:

public static void Main() {
    CustomStaticMethod(bar: "hello", 4, foo: "world"); 
}

使用命名参数让您无需记住每个参数的确切位置即可提供参数。如果要调用的方法具有很长的参数列表,这将特别有用。

有关详细信息,您可以阅读 official doc