Ne pas lier 2 variables [Résolu]

Signaler
Messages postés
17
Date d'inscription
lundi 21 juin 2010
Statut
Membre
Dernière intervention
6 mai 2011
-
Messages postés
17
Date d'inscription
lundi 21 juin 2010
Statut
Membre
Dernière intervention
6 mai 2011
-
voilà j'ai une classe :

Public Class Test

        Public id As Long

        Public Nom As String
     
End Class


J'aimerai dupliquer sans lier. je m'explique. actuellement je fais :

Dim A as New Test
A.id = 1
A.Nom = "Test1"
Dim B as New Test = A
B.Nom = "Test2"

ET là je me retrouve avec A et B qui sont liés et donc quand je change B.Nom Je Change aussi A.Nom. Comment fiare pour l'éviter ?

4 réponses

Messages postés
14733
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
12 octobre 2020
146
Bonjour,

Dim B as New Test = A
est
Dim B as Test = A

Voir :
http://www.vbfrance.com/codes/CLONER-OBJET-TRES-SIMPLEMENT_29859.aspx

Mon site
Messages postés
416
Date d'inscription
vendredi 22 février 2008
Statut
Membre
Dernière intervention
7 janvier 2018
1
Bonsoir,


Dim B as New Test = A 

Tu supprime "=A" et tu trouve un autre moyen d'initialiser id et nom

Soit par une fonctio de ce genre

Sub Duplique(Source as test, Cible as test)
cible.id = source.id  
cible.Nom = source.Nom  
End Sub


En faisant = sur un objet il me semble que tu lui donne un pointeur indiquant la position de l'objet A dans la mémoire.
Tu ne duplique donc pas l'objet A, tu lui donne le même pointeur en mémoire.

Bonne prog CGSI3
Messages postés
416
Date d'inscription
vendredi 22 février 2008
Statut
Membre
Dernière intervention
7 janvier 2018
1
Trop Rapide NHenry !
Merci pour le lien
Messages postés
17
Date d'inscription
lundi 21 juin 2010
Statut
Membre
Dernière intervention
6 mai 2011

Merci pour ta réponse CGSI3 mais t'a solution ne me convient pas vraimetn car mon code est plus compliqué et j'ai 3 classe qui s'entremellent.