对象变量赋值 (Visual Basic)

使用正常的赋值语句将对象分配给对象变量。 可以分配对象表达式或 Nothing 关键字,如下例所示。

Dim thisObject As Object
' The following statement assigns an object reference.
thisObject = Form1
' The following statement discontinues association with any object.
thisObject = Nothing

Nothing 表示当前没有对象分配给该变量。

初始化

代码开始运行时,你的对象变量将初始化为 Nothing。 其声明中包含初始化的变量将重新初始化为在执行声明语句时指定的值。

可以使用 New 关键字在声明中包含初始化。 以下声明语句声明对象变量 testUriver 并将特定对象分配给它们。 这两个变量都使用适当类的重载构造函数之一来初始化对象。

Dim testUri As New System.Uri("https://www.microsoft.com")
Dim ver As New System.Version(6, 1, 0)

解除关联

将对象变量设置为 Nothing 会终止该变量与任何特定对象的关联。 这可以防止通过更改变量意外更改对象。 它还使你能够测试对象变量是否指向有效对象,如下例所示。

If otherObject IsNot Nothing Then
    ' otherObject refers to a valid object, so your code can use it.
End If

如果变量引用的对象在另一个应用程序中,则此测试无法确定该应用程序是否已终止或只是使该对象无效。

值为 Nothing 的对象变量也称为空引用。

当前实例

对象的当前实例是当前在其中执行代码的实例。 由于所有代码都在一个过程中执行,因此当前实例就是调用该过程的那个实例。

Me 关键字充当引用当前实例的对象变量。 如果过程不是共享的,则它可以使用 Me 关键字来获取指向当前实例的指针。 共享过程不能与类的特定实例相关联。

使用 Me 对于将当前实例传递到另一个模块中的过程特别有用。 例如,假设你有多个 XML 文档,并且希望向所有文档添加一些标准文本。 下面的示例定义了执行此操作的过程。

Sub addStandardText(XmlDoc As System.Xml.XmlDocument)
    XmlDoc.CreateTextNode("This text goes into every XML document.")
End Sub

然后,每个 XML 文档对象都可以调用该过程,并将其当前实例作为参数进行传递。 下面的示例演示这一操作。

addStandardText(Me)

另请参阅