Der nameof-Ausdruck in C♯
Der nameof-Ausdruck ist kein Aufruf, aber er ähnelt einem Aufruf. Daher wird er in diesem Kapitel zu Aufrufen behandelt.
Einführende Beispiele
Der Wert eines nameof-Ausdrucks ist der eigentliche Name des in dem Ausdruck angegebenen Namens. Er ist bereits durch den Quelltext bestimmt.
Program.cs
public static class Program
{ public static void Main()
{ global::System.Console.WriteLine
( nameof( global::System.Math.PI )); }}- Protokoll
PI
Program.cs
public static class Program
{ public static void Main()
{ global::System.Console.WriteLine
( nameof( global::Microsoft.JScript.MathObject.random )); }}- Protokoll
random
Syntax
Ein nameof-Ausdruck besteht aus dem Wort »nameof«, gefolgt von der lexikalischen Einheit „runde Klammer auf“ »(«, einer Typangabe und der lexikalischen Einheit „runde Klammer zu“ »)«.
- Der nameof-Ausdruck
Ausdruck
.------. .-. .----------. .-.
--->( nameof )--->( ( )--->| Ausdruck |--->( ) )--->
'------' '-' '----------' '-'
Da »nameof« kein Schlüsselwort ist, gilt ein nameof-Ausdruck als Aufruf, falls es eine an dieser Stelle an »nameof« aufrufbare Methode gibt. (Was aber normalerweise nicht der Fall ist.) Insofern unterscheidet sich »nameof« vom Schlüsselwort »typeof«.
Anforderungen
Als Ausdruck wird ein Name erwartet.
Semantik
Quelltextsemantik
Der Typ eines nameof-Ausdrucks ist »string«.
Der Wert dieses Ausdrucks wird bereits während der Übersetzung ermittelt und gehört insofern zum Quelltextmodell. Es handelt sich um den eigentlichen Namen des Namens, also den Bezeichner, der am Ende einer Folge mehrere punktgetrennter Bezeichner steht.