Partager via


Affectation de variables d’objet (Visual Basic)

Vous utilisez une instruction d’affectation normale pour affecter un objet à une variable d’objet. Vous pouvez affecter une expression d’objet ou le mot clé Nothing , 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 sur Nothing. Ceux dont les déclarations incluent l’initialisation sont réinitialisées aux valeurs que vous spécifiez lorsque les instructions de déclaration sont exécutées.

Vous pouvez inclure l’initialisation dans votre déclaration à l’aide du mot clé New . Les instructions de déclaration suivantes déclarent des variables testUri d’objet et ver 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 interrompre 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 l’illustre 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 fait référence votre variable se trouve dans une autre application, ce test ne peut pas déterminer si cette application s’est arrêtée ou a simplement invalidé l’objet.

Une variable d’objet dont la valeur 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 Me mot clé agit en tant que variable objet faisant référence à l’instance actuelle. Si une procédure n’est pas partagée, elle peut utiliser le Me mot clé pour obtenir un pointeur vers l’instance actuelle. Les procédures partagées ne peuvent pas être associées à une instance spécifique d’une classe.

L’utilisation 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 ces documents. L’exemple suivant définit une procédure à suivre.

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 actuelle en tant qu’argument. l’exemple ci-dessous illustre ce cas de figure.

addStandardText(Me)

Voir aussi