Assignation des variables objets (Visual Basic)

Vous utilisez une instruction d’affectation normale pour affecter un objet à une variable objet. Vous pouvez affecter une expression d’objet ou le mot clé Rien, comme l’illustre l’exemple suivant.

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

Nothing signifie qu’aucun objet n’est actuellement affecté à la variable.

Initialisation

Lorsque votre code commence à s’exécuter, vos variables d’objet sont initialisées à Nothing. Ceux dont les déclarations incluent l’initialisation sont réinitialisés aux valeurs que vous spécifiez lors de l’exécution des instructions de déclaration.

Vous pouvez inclure l’initialisation dans votre déclaration à l’aide du mot clé Nouveau. Les instructions de déclaration suivantes déclarent des variables objet testUri et ver leur attribuent des objets spécifiques. Chacun utilise l’un des constructeurs surchargés de la classe appropriée pour initialiser l’objet.

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

Dissociation

La définition d’une variable d’objet pour Nothing interrompt l’association de la variable à n’importe quel objet spécifique. Cela vous empêche de modifier accidentellement l’objet en modifiant la variable. Il vous permet également de tester si la variable objet pointe vers un objet valide, comme le montre l’exemple suivant.

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

Si l’objet auquel votre variable fait référence se trouve dans une autre application, ce test ne peut pas déterminer si cette application a arrêté ou simplement invalidé l’objet.

Une variable objet avec une valeur de Nothing est également appelée référence null.

instance actuelle

L’instance actuelle d’un objet est celle dans laquelle le code est en cours d’exécution. Étant donné que tout le code s’exécute à l’intérieur d’une procédure, l’instance actuelle est celle dans laquelle la procédure a été appelée.

Le mot clé Me agit comme une variable objet faisant référence à la instance actuelle. Si une procédure n’est pas Partagée, elle peut utiliser le mot clé Me pour obtenir un pointeur vers l’instance actuelle. Les procédures partagées ne peuvent pas être associées à un instance spécifique d’une classe.

L’utilisation de Me est particulièrement utile pour transmettre l’instance actuelle à une procédure dans un autre module. Par exemple, supposons que vous disposez d’un certain nombre de documents XML et que vous souhaitez ajouter du texte standard à tous. L’exemple suivant définit une procédure pour ce faire.

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

Chaque objet de document XML peut ensuite appeler la procédure et passer son instance actuel en tant qu’argument. l’exemple ci-dessous illustre ce cas de figure.

addStandardText(Me)

Voir aussi