Benutzer mit den meisten Antworten
Kopieren von Objekteigenschaften

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.EigenschaftNGeht es auch einfacher, insbesondere, um zu verhindern, dass man versehentlich Eigenschaften vergißt?
Danke Peter
Peter
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- Als Antwort vorgeschlagen Robert BreitenhoferModerator Donnerstag, 7. Juni 2012 08:08
- Als Antwort markiert Robert BreitenhoferModerator Montag, 11. Juni 2012 12:17
Alle 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- Als Antwort vorgeschlagen Robert BreitenhoferModerator Donnerstag, 7. Juni 2012 08:08
- Als Antwort markiert Robert BreitenhoferModerator Montag, 11. Juni 2012 12:17
-
Hallo,
dazu steht hier etwas:
Über Serialisieren / Deserealisieren zu gehen erscheint mir als der elegantere Weg weil die Methode bei Änderung oder Erweiterung der Klasse nicht angepasst werden muss.
- Bearbeitet Robert BreitenhoferModerator Donnerstag, 7. Juni 2012 08:06 URL als Link
-
Hallo Peter Gast,
Hat Dir die Antwort geholfen?
Grüße,
RobertRobert Breitenhofer, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können. -
Hallo Peter Gast,
Ich gehe davon aus, dass die Antwort Dir weitergeholfen hat.
Solltest Du noch "Rückfragen" dazu haben, so gib uns bitte Bescheid.Grüße,
RobertRobert Breitenhofer, MICROSOFT
Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.