NameOf-Operator – Visual Basic

Der Operator NameOf ruft den Namen einer Variablen, eines Typs oder eines Members als Zeichenfolgenkonstante ab:

Console.WriteLine(NameOf(System.Collections.Generic))  ' output: Generic
Console.WriteLine(NameOf(List(Of Integer)))  ' output: List
Console.WriteLine(NameOf(List(Of Integer).Count))  ' output: Count
Console.WriteLine(NameOf(List(Of Integer).Add))  ' output: Add

Dim numbers As New List(Of Integer) From { 1, 2, 3 }
Console.WriteLine(NameOf(numbers))  ' output: numbers
Console.WriteLine(NameOf(numbers.Count))  ' output: Count
Console.WriteLine(NameOf(numbers.Add))  ' output: Add

Im Falle eines Typs und eines Namespace ist der erzeugte Name in der Regel nicht vollqualifiziert, wie im obigen Beispiel zu sehen.

Der Operator NameOf wird zur Kompilierzeit ausgewertet und hat zur Laufzeit keine Auswirkung.

Der Operator NameOf kann zur besseren Verwaltbarkeit des Argumentüberprüfungscodes beitragen:

Private _name As String

Public Property Name As String
    Get
        Return _name
    End Get
    Set
        If value Is Nothing Then
            Throw New ArgumentNullException(NameOf(value), $"{NameOf(name)} cannot be null.")
        End If
    End Set
End Property

Der NameOf-Operator ist in Visual Basic 14 und höher verfügbar.

Siehe auch