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 :
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
et, dans une sub quelconque, le code suivant :
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
Alors à la fin de l'exécution de ce code, j'ai Variable1.Valeur qui vaut 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 :
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
Dans mon code je mets donc Variable1.Copier(Variable2) au lieu de Variable1 = Variable2, et j'ai bien 2 instances bien distinctes.

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 ?