Ereignisse
17. März, 23 Uhr - 21. März, 23 Uhr
Nehmen Sie an der Meetup-Serie teil, um skalierbare KI-Lösungen basierend auf realen Anwendungsfällen mit Mitentwicklern und Experten zu erstellen.
Jetzt registrierenDieser Browser wird nicht mehr unterstützt.
Führen Sie ein Upgrade auf Microsoft Edge aus, um die neuesten Funktionen, Sicherheitsupdates und technischen Support zu nutzen.
Ein nameof
-Ausdruck erzeugt den Namen einer Variablen, eines Typs oder eines Members als Zeichenfolgenkonstante. Ein nameof
-Ausdruck wird zur Kompilierzeit ausgewertet und hat zur Laufzeit keine Auswirkung. Wenn der Operand ein Typ oder ein Namespace ist, ist der erzeugte Name nicht vollqualifiziert. Das folgende Beispiel zeigt die Verwendung eines nameof
-Ausdrucks:
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
List<int> 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
Sie können einen nameof
-Ausdruck nutzen, um den Code zur Argumentüberprüfung besser verwalten zu können:
public string Name
{
get => name;
set => name = value ?? throw new ArgumentNullException(nameof(value), $"{nameof(Name)} cannot be null");
}
Ab C# 11 können Sie einen nameof
-Ausdruck mit einem Methodenparameter innerhalb eines Attributs für eine Methode oder ihren Parameter verwenden. Der folgende Code zeigt, wie dies für ein Attribut einer Methode, eine lokale Funktion und den Parameter eines Lambdaausdrucks erfolgen kann:
[ParameterString(nameof(msg))]
public static void Method(string msg)
{
[ParameterString(nameof(T))]
void LocalFunction<T>(T param) { }
var lambdaExpression = ([ParameterString(nameof(aNumber))] int aNumber) => aNumber.ToString();
}
Ein nameof
-Ausdruck mit einem Parameter ist nützlich, wenn Sie die Nullable-Analyseattribute oder das CallerArgumentExpression-Attribut verwenden.
Wenn der Operand ein Verbatimbezeichner ist, ist das @
Zeichen nicht Teil des Namens, wie im folgenden Beispiel gezeigt:
var @new = 5;
Console.WriteLine(nameof(@new)); // output: new
Weitere Informationen finden Sie im Abschnitt Nameof-Ausdrücke der C#-Sprachspezifikation und in der Featurespezifikation C# 11 – Erweiterter nameof
-Bereich.
Feedback zu .NET
.NET ist ein Open Source-Projekt. Wählen Sie einen Link aus, um Feedback zu geben:
Ereignisse
17. März, 23 Uhr - 21. März, 23 Uhr
Nehmen Sie an der Meetup-Serie teil, um skalierbare KI-Lösungen basierend auf realen Anwendungsfällen mit Mitentwicklern und Experten zu erstellen.
Jetzt registrieren