Copie de classes

Utilisateur anonyme - 22 mai 2005 à 12:36
 Utilisateur anonyme - 23 mai 2005 à 16:01
Bonjour,


G un petit pb .NET avec des classes
Voici le pb :



Public Class MaClass
Public Text As String
End Class


Public Class Frm1
Private TabClass1() As MaClass
Private TabClass2() As MaClass


Private Function InitClass
ReDim TabClass1(4)
TabClass1(0) = New MaClass
TabClass1(0).Text = "00"
TabClass1(1) = New MaClass
TabClass1(1).Text = "01"
TabClass1(2) = New MaClass
TabClass1(2).Text = "02"
TabClass1(3) = New MaClass
TabClass1(3).Text = "03"
TabClass1(4) = New MaClass
TabClass1(4).Text = "04"
TabClass2 = TabClass1
TabClass2(0).Text = "X"
End Function
End Class



Après avoir lancer le prog et exécuter la fonction InitClass
J'obtient :


TabClass1(0).Text = "X"
TabClass1(1).Text = "01"
TabClass1(2).Text = "02"
TabClass1(3).Text = "03"
TabClass1(4).Text = "04"


TabClass2(0).Text = "X"
TabClass2(1).Text = "01"
TabClass2(2).Text = "02"
TabClass2(3).Text = "03"
TabClass2(4).Text = "04"



Alors que j'aurais pensé avoir


TabClass1(0).Text = "00"
TabClass1(1).Text = "01"
TabClass1(2).Text = "02"
TabClass1(3).Text = "03"
TabClass1(4).Text = "04"


TabClass2(0).Text = "X"
TabClass2(1).Text = "01"
TabClass2(2).Text = "02"
TabClass2(3).Text = "03"
TabClass2(4).Text = "04"



Donc je cherche une moyen por copier une classe et après modifier la seconde sans qu'elle modifie la premiére.

ChRb

2 réponses

cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
22 mai 2005 à 22:26
le probleme c'est que tu copie des pointeurs
ajoute toi une fonction CloneClasse()

cette fonction vas crée une nouvelle instance de classe puis copier les prp une par une
genre
function CloneClass(Value as MyClass)
CloneClass = New MyClass
CloneClass.Text = Value.Text
etc...

@+


E.B.
0
Utilisateur anonyme
23 mai 2005 à 16:01
En effait, tu a raison, mais l'utilisaton de 'new' ralantie beaucoup le prog surtout que dans mon prog il y a beaucoup d'éléments à actualiser (là je n'avais fais q'un example).
Donc ta solutions n'est donc pas possible
Merci qand même

ChRb
0
Rejoignez-nous