NameOf 運算子

NameOf 運算子在編譯時解析名稱空間,型別,變數和成員名稱,並用等效的字串替換它們。

其中一個用例:

Sub MySub(variable As String)
    If variable Is Nothing Then Throw New ArgumentNullException("variable")
End Sub

舊語法將暴露重新命名變數並將硬編碼字串保留為錯誤值的風險。

Sub MySub(variable As String)
    If variable Is Nothing Then Throw New ArgumentNullException(NameOf(variable))
End Sub

使用 NameOf,僅重新命名變數將引發編譯器錯誤。這也將允許重新命名工具一次重新命名。

NameOf 運算子僅使用括號中引用的最後一個元件。在 NameOf 運算子中處理名稱空間等內容時,這很重要。

Imports System

Module Module1
    Sub WriteIO()
        Console.WriteLine(NameOf(IO)) 'displays "IO"
        Console.WriteLine(NameOf(System.IO)) 'displays "IO"
    End Sub
End Module

運算子還使用鍵入的引用的名稱,而不解析任何更改名稱的匯入。例如:

Imports OldList = System.Collections.ArrayList

Module Module1
    Sub WriteList()
        Console.WriteLine(NameOf(OldList)) 'displays "OldList"
        Console.WriteLine(NameOf(System.Collections.ArrayList)) 'displays "ArrayList"
    End Sub
End Module