nameof – výraz (Referenční dokumentace jazyka C#)

nameofVýraz vytvoří název proměnné, typu nebo členu jako řetězcové konstanty:

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

Jak ukazuje předchozí příklad, v případě typu a oboru názvů není vytvořený název plně kvalifikovaný.

V případě doslovnéch identifikátorůnení @ znak součástí názvu, jak ukazuje následující příklad:

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

nameofVýraz je vyhodnocen v době kompilace a nemá žádný vliv na dobu běhu.

Výraz lze použít nameof k zajištění udržovatelnosti kódu kontroly argumentu:

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

nameofVýraz je k dispozici v C# 6 a novějším.

specifikace jazyka C#

Další informace naleznete v části Expressions nameof v tématu specifikace jazyka C#.

Viz také