NameOf ifadesi (C# Başvurusu)
Bir nameof ifade, dize sabiti olarak bir değişkenin, türün veya üyenin adını üretir:
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 tam olarak nitelenir.
Tam tanımlayıcılarsöz konusu olduğunda, @ Aşağıdaki örnekte gösterildiği gibi karakter bir adın parçası değildir:
var @new = 5;
Console.WriteLine(nameof(@new)); // output: new
Bir nameof ifade derleme zamanında değerlendirilir ve çalışma zamanında hiçbir etkiye sahip değildir.
nameofBağımsız değişken denetleme kodunun daha sürdürülebilir olması için bir ifade kullanabilirsiniz:
public string Name
{
get => name;
set => name = value ?? throw new ArgumentNullException(nameof(value), $"{nameof(Name)} cannot be null");
}
nameofC# 6 ve sonrasında bir ifade mevcuttur.
C# dili belirtimi
Daha fazla bilgi için C# dil belirtiminin NameOf ifadeleri bölümüne bakın.