nameof 運算式 (c # 參考)

nameof運算式會產生變數、類型或成員的名稱做為字串常數:

Console.WriteLine(nameof(System.Collections.Generic));  // output: Generic
Console.WriteLine(nameof(List<int>));  // output: List
Console.WriteLine(nameof(List<int>.Count));  // output: Count
Console.WriteLine(nameof(List<int>.Add));  // output: Add

var numbers = new List<int> { 1, 2, 3 };
Console.WriteLine(nameof(numbers));  // output: numbers
Console.WriteLine(nameof(numbers.Count));  // output: Count
Console.WriteLine(nameof(numbers.Add));  // output: Add

如先前的範例所示,在類型和命名空間的案例中,產生的名稱不是 完整限定

逐字識別碼的情況下, @ 字元不是名稱的一部分,如下列範例所示:

var @new = 5;
Console.WriteLine(nameof(@new));  // output: new

nameof運算式會在編譯時期進行評估,而且在執行時間不會有任何作用。

您可以使用 nameof 運算式讓引數檢查程式碼更容易維護:

public string Name
{
    get => name;
    set => name = value ?? throw new ArgumentNullException(nameof(value), $"{nameof(Name)} cannot be null");
}

nameof運算式可在 c # 6 和更新版本中使用。

C# 語言規格

如需詳細資訊,請參閱 C# 語言規格Nameof 運算式一節。

另請參閱