Forums Neueste Beiträge
 

Klassenvergleich, Klonen

08/04/2008 - 11:02 von Werner Perplies | Report spam
Guten Morgen,

Ich habe hier ein Object

das verschiedene Variablen enthàlt, sowohle Werte als auch Referenzen.

Frage 1:
Gibt es etwas Fertiges, mit dem ich einen kompletten Clone erstellen kann?
Hier Referenztypen offensichtlich nicht geclont.
internal Klasse Clone()
{
return (Klasse)this.MemberwiseClone();
}
Frage 2:
Wie prüfe ich ob in zwei Klassen die Inhalte (Werte) gleich sind?

Gibt es hierfür irgendetwas Fertiges?


Werner
www.weepee.eu
 

Lesen sie die antworten

#1 Frank Dzaebel
08/04/2008 - 11:57 | Warnen spam
Hallo Werner,

Ich habe hier ein Object
das verschiedene Variablen enthàlt, sowohle Werte als auch Referenzen.

Frage 1:
Gibt es etwas Fertiges, mit dem ich einen kompletten Clone erstellen kann?



Halbwegs, hatte ich mal in die NG gepostet:
http://groups.google.com/group/micr...1d4ed5d640

Sauberer Weg natürlich letztlich über die ICloneable-Schnittstelle, oder
einer gar eigenen spezifischeren:
http://groups.google.com/group/micr...e1099500ba




Hier Referenztypen offensichtlich nicht geclont.
internal Klasse Clone() {return (Klasse)this.MemberwiseClone();



ja, das ist nur eine flache Kopie.



Frage 2:
Wie prüfe ich ob in zwei Klassen die Inhalte (Werte) gleich sind?

Gibt es hierfür irgendetwas Fertiges?



Tja, man spricht da normal von der "Wertgleichheit" (im Gegensatz
zur Verweisgleichheit) von Objekten. Wàhrend "==" standardmàßig
auf Verweisgleichheit prüft, prüft Equals(...) auf Wertgleichheit.
(ok, vielleicht hast Du sogar noch etwas anderes gemeint).

Für Variationsmöglichkeiten/Anpassungen gibt es u.a. die:
IComparable-, IEquatable<T>- oder
die IEqualityComparer<T>-Schnittstelle.

[Objekte (C#-Programmierhandbuch)]
http://msdn2.microsoft.com/de-de/li...73110.aspx

[Richtlinien zum Überschreiben von Equals() und des == Operators]
http://msdn2.microsoft.com/de-de/li...73147.aspx


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen