Bonjour,
Je voudrais connaître les tenants et les aboutissants de l'oprateur "=".
Voilà ce que j'ai noté, par expérience :
Si je déclare la classe suivante :
et, dans une sub quelconque, le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Public Class MaClasse Public Valeur as integer Public Texte as String End Class
Alors à la fin de l'exécution de ce code, j'ai Variable1.Valeur qui vaut 3.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Dim Variable1 as MaClasse = New MaClasse Dim Variable2 as MaClasse = New MaClasse Variable1.Valeur = 1 Variable2.Valeur = 2 Variable1 = Variable2 Variable2.Valeur = 3
J'en déduis donc que (contrairement à des opérations sur des types "de base" comme Integer ou Double...), "Variable1 = Variable2" revient à dire "l'adresse de Variable1 devient l'adresse de Variable2" (les valeurs de Variable1 se perdent donc dans la nature).
Ca m'arrange dans certains cas, mais sinon, je suis obligé de créer une méthode dans ma classe :
Dans mon code je mets donc Variable1.Copier(Variable2) au lieu de Variable1 = Variable2, et j'ai bien 2 instances bien distinctes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Public Sub Copier(ByVal Source as MaClasse) Me.Valeur = Source.Valeur Me.Texte = Source.Texte End Sub
Je ne trouve pas de description du comportement de l'opérateur = en fonction des données à qui on l'applique. Quelqu'un pourrait-il m'expliquer rapidement les différents cas de figure possibles ?
Partager