NameOf işleci (C# başvuru)nameof operator (C# reference)

nameof İşleci, dize sabiti olarak bir değişkenin, türün veya üyenin adını edinir:The nameof operator obtains the name of a variable, type, or member as the string constant:

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

Yukarıdaki örnekte gösterildiği gibi, bir tür ve ad alanı durumunda, oluşturulan ad genellikle tam olarak nitelenir.As the preceding example shows, in the case of a type and a namespace, the produced name is usually not fully qualified.

nameof İşleci derleme zamanında değerlendirilir ve çalışma zamanında hiçbir etkiye sahip değildir.The nameof operator is evaluated at compile time, and has no effect at run time.

Bağımsız değişken denetleme kodunun nameof daha sürdürülebilir olması için işlecini kullanabilirsiniz:You can use the nameof operator to make the argument-checking code more maintainable:

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

nameof İşleci C# 6 ve üzeri sürümlerde kullanılabilir.The nameof operator is available in C# 6 and later.

C# dili belirtimiC# language specification

Daha fazla bilgi için, C# dil belirtiminin NameOf ifadeleri bölümüne bakın.For more information, see the Nameof expressions section of the C# language specification.

Ayrıca bkz.See also