none
Kopieren von Objekteigenschaften RRS feed

  • Frage

  • Hallo,

    ich habe eine Klasse Daten mit vielen verschiedenen Eigenschaften. Wie kann ich die Eigenschaften von einem Objekt Daten1 zu Daten2 kopieren, ohne dass das Objekt Daten2 auf Daten1 referenziert. Ein Möglichkeit wäre natürlich

    Daten2.Eigenschaft1=Daten1.Eigenschaft1
    Daten2.Eigenschaft2=Daten1.Eigenschaft2
    ...
    Daten2.EigenschaftN=Daten1.EigenschaftN

    Geht es auch einfacher, insbesondere, um zu verhindern, dass man versehentlich Eigenschaften vergißt?

    Danke Peter


    Peter

    Sonntag, 3. Juni 2012 17:29

Antworten

  • Hi Peter,
    eine Möglichkeit wäre Reflection, ggf. im Zusammenhang mit Attributen.
     
    Besser ist es aber, die Klasse Daten um eine Copy- oder Clone-Methode zu ergänzen, in der alle relevanten Eigenschaften kopiert werden (analog Deinem Codeschnipsel). Bei einem “stupiden” Kopieren aller Eigenschaftswerte können Probleme entstehen. Ein Beispiel dazu ist ein Datenobjekt, was die Werte eines “nicht modifizierten” Objektes übernehmen soll, selbst aber als “hinzugefügt” bzw. “neu” gekennzeichnet werden soll. Das geht weiter mit Identifikatoren (z.B. GUID), die abweichend sein sollen.
     
    Alternativ kann man das Objekt auch “exportieren” (serialisieren) und dann wieder als neues Objekt importieren (deserialisieren).
     
    --
    Viele Gruesse
    Peter
    Sonntag, 3. Juni 2012 17:59

Alle Antworten