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#.