Object kopieren

Katzenbauer

Erfahrenes Mitglied
Also wie ihr sicher schon an meinem anderen Thema bemerkt habt lerne ich gerade Visual C#.

Nun habe ich folgendes Problem:
Ich habe eine eigene Klasse, die z.B so aussieht:
Code:
public MyClass {}
Nun habe ich in meinem FrmMain (Hauptformular) ein Feld von diesem Typ, dass ein ein Unterformular weitergereicht werden soll. Soweit kein Problem das ganze wird über den Konstruktor des Unterformulars gemacht.

Nun wird in diesem Unterformular mit Hilfe einer ListView aus verschiedenen Einträgen, die diese zuvor gespeicherten (serialisierten) Objekte diesen Typs darstellen gewählt. Diese Objekte sind schon "fertig" und sollen dann in das weitergereichte Objekt kopiert werden.

Wie mache ich das nun ohne selbst Hand anzulegen wie z.B:
Code:
private void CopyObjekt(MyClass from, MyClass to)
{
    to.name = from.name;
    // usw.
}
Die Funktion müsste ich ja immer ändern, wenn das Objekt sich ändert.

Wie ich gelesen habe müsste ich dann MyClass vom ICloneable Interface ableiten und die Clone Methode implementieren, die dann wie die Obige aussieht und von mir "gewartet" werden müsste.

Stimmt das so oder geht das mit dem Clonen einfacher?
 
Wie du es ohnehin schon entdeckt hast ist das ICloneable-Interface genau richtig für dich.

Unterstützt das Klonen, wobei eine neue Instanz einer Klasse mit denselben Werten wie eine vorhandene Instanz erstellt wird.
 
Wer weiterführende Informationen zu diesem Thema sucht, dem empfiehlt sich ein Nachschlagen der Begriffe Deep Copy und Shallow Copy. Ebenfalls auch von Interesse könnte die Methode Object.MemberwiseCopy() sein.
 
Zurück