Hallo,
ich komme momentan nicht weiter und auch google half mir bis jetzt nicht wirklich.
Ich mache das nur als Hobby, also falls ich mich etwas unbeholfen anstelle, wisst ihr wieso
deswegen benutze ich auch das .net.
Ich habe eine Klasse mit verschiedenen Variablen, darunter auch mehrere ArrayList. Das stellt dann immer einen kompletten Datensatz dar, der kommt dann wiederum in eine weitere ArrayList (main_AL).
Also so:
Das Problem ist jetzt, dass alle Variablen aus der Klasse geclont werden, also komplett inkl. der Werte, nur die ArrayList innerhalb der Klasse wollen nichts davon wissen und es werden immer nur Referenzen erstellt.
Soweit ich das jetzt verstanden habe, liegt es daran, dass die ArrayList als statische Member erzeugt wurden und deshalb MemberwiseClone nur Referenzen erzeugt.
Wie bekomme ich das nun hin?
Gibt es Alternativen?
ich komme momentan nicht weiter und auch google half mir bis jetzt nicht wirklich.
Ich mache das nur als Hobby, also falls ich mich etwas unbeholfen anstelle, wisst ihr wieso
deswegen benutze ich auch das .net.
Ich habe eine Klasse mit verschiedenen Variablen, darunter auch mehrere ArrayList. Das stellt dann immer einen kompletten Datensatz dar, der kommt dann wiederum in eine weitere ArrayList (main_AL).
Also so:
Code:
ArrayList^ main_AL = gcnew ArrayList();
...
for( ... )
{
myClass^ mc = gcnew myClass();
mc->Var1 = ...
mc->Var2 = ...
mc->AL1 = ...
main_AL->Add( mc->Clone() );
}
// hier noch die Funktion zum Clonen
public: System::Object^ Clone()
{
myClass^ newmc = (myClass^) this->MemberwiseClone();
return newmc;
}
Das Problem ist jetzt, dass alle Variablen aus der Klasse geclont werden, also komplett inkl. der Werte, nur die ArrayList innerhalb der Klasse wollen nichts davon wissen und es werden immer nur Referenzen erstellt.
Soweit ich das jetzt verstanden habe, liegt es daran, dass die ArrayList als statische Member erzeugt wurden und deshalb MemberwiseClone nur Referenzen erzeugt.
Wie bekomme ich das nun hin?
Gibt es Alternativen?