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