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