Ne pas lier 2 variables [Résolu]

Messages postés
17
Date d'inscription
lundi 21 juin 2010
Statut
Membre
Dernière intervention
6 mai 2011
- - Dernière réponse : madaal
Messages postés
17
Date d'inscription
lundi 21 juin 2010
Statut
Membre
Dernière intervention
6 mai 2011
- 8 mars 2011 à 16:06
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 ?
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
14565
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 octobre 2019
136
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 188 internautes nous ont dit merci ce mois-ci

Commenter la réponse de NHenry
Messages postés
417
Date d'inscription
vendredi 22 février 2008
Statut
Membre
Dernière intervention
7 janvier 2018
1
0
Merci
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
Commenter la réponse de CGSI3
Messages postés
417
Date d'inscription
vendredi 22 février 2008
Statut
Membre
Dernière intervention
7 janvier 2018
1
0
Merci
Trop Rapide NHenry !
Merci pour le lien
Commenter la réponse de CGSI3
Messages postés
17
Date d'inscription
lundi 21 juin 2010
Statut
Membre
Dernière intervention
6 mai 2011
0
Merci
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.
Commenter la réponse de madaal