Object Variable Assignment (Visual Basic)
You use a normal assignment statement to assign an object to an object variable. You can assign an object expression or the Nothing keyword, as the following example illustrates.
Dim thisObject As Object
' The following statement assigns an object reference.
thisObject = Form1
' The following statement discontinues association with any object.
thisObject = Nothing
Nothing
means there is no object currently assigned to the variable.
Initialization
When your code begins running, your object variables are initialized to Nothing
. Those whose declarations include initialization are reinitialized to the values you specify when the declaration statements are executed.
You can include initialization in your declaration by using the New keyword. The following declaration statements declare object variables testUri
and ver
and assign specific objects to them. Each uses one of the overloaded constructors of the appropriate class to initialize the object.
Dim testUri As New System.Uri("https://www.microsoft.com")
Dim ver As New System.Version(6, 1, 0)
Disassociation
Setting an object variable to Nothing
discontinues the association of the variable with any specific object. This prevents you from accidentally changing the object by changing the variable. It also allows you to test whether the object variable points to a valid object, as the following example shows.
If otherObject IsNot Nothing Then
' otherObject refers to a valid object, so your code can use it.
End If
If the object your variable refers to is in another application, this test cannot determine whether that application has terminated or just invalidated the object.
An object variable with a value of Nothing
is also called a null reference.
Current Instance
The current instance of an object is the one in which the code is currently executing. Since all code executes inside a procedure, the current instance is the one in which the procedure was invoked.
The Me
keyword acts as an object variable referring to the current instance. If a procedure is not Shared, it can use the Me
keyword to obtain a pointer to the current instance. Shared procedures cannot be associated with a specific instance of a class.
Using Me
is particularly useful for passing the current instance to a procedure in another module. For example, suppose you have a number of XML documents and wish to add some standard text to all of them. The following example defines a procedure to do this.
Sub addStandardText(XmlDoc As System.Xml.XmlDocument)
XmlDoc.CreateTextNode("This text goes into every XML document.")
End Sub
Every XML document object could then call the procedure and pass its current instance as an argument. The following example demonstrates this.
addStandardText(Me)
See also
Atsiliepimai
https://aka.ms/ContentUserFeedback.
Jau greitai: 2024 m. palaipsniui atsisakysime „GitHub“ problemų, kaip turiniui taikomo atsiliepimų mechanizmo, ir pakeisime jį nauja atsiliepimų sistema. Daugiau informacijos žr.Pateikti ir peržiūrėti atsiliepimą, skirtą