Laden...

Wie kann man prüfen ob 2 Instanzen einer Klasse selbe Werte haben

Erstellt von Naishweb vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.009 Views
Thema geschlossen
N
Naishweb Themenstarter:in
10 Beiträge seit 2009
vor 13 Jahren
Wie kann man prüfen ob 2 Instanzen einer Klasse selbe Werte haben

Hi,

steh grad aufm Schlauch. Problem:

Habe eine Klasse, sagen wir Person. Die Klasse Person hat mehrere Attribute: Name, Augenfarbe, Geburtsdatum. Ich erstelle 2 Instanzen dieser Klasse. Einmal Klaus, einmal Peter...
Wie kann ich prüfen ob beide Instanzen die selben Werte haben? Also, ausser bis auf die Speicheradresse, identisch sind? Und jetzt sagt bitte nicht "Naishweb, vergleiche einfach alle 2985 Attribute in einer Funktion." Bitte nich 😄

5.742 Beiträge seit 2007
vor 13 Jahren

Hallo Naishweb,

Und jetzt sagt bitte nicht "Naishweb, vergleiche einfach alle 2985 Attribute in einer Funktion." Bitte nich 😄

Doch, das ist der normale Weg, das zu prüfen.
Man überschreibt Equals und füllt es mit genau dieser Logik.

Das stupide Auflisten aller Felder kann man sehr gut von z.B. ReSharper übernehmen - aber auch selbst kann man da relativ einfach etwas mit Reflection basteln.
Alternativ kannst du natürlich auch zur Laufzeit auf Reflection zurückgreifen - das ist aber eigentlich eher unüblich.

BTW: 2985 Properties für eine Klasse? 😮

1.044 Beiträge seit 2008
vor 13 Jahren

Hallo Naishweb,

wenn du zwei Instanzen hast, also

Person personZero_x = new Person { Firstname="zero_x" }
Person personNaishweb = new Person { Firstname= "Naishweb" }

hast, dann bleibt dir nichts anderes übrig, als eine Logik für das Vergleichen zu schreiben. Ich persönlich würde das via Reflection lösen, sprich alle Properties zwischen zwei oder mehreren Instanzen zu vergleichen.

zero_x

N
Naishweb Themenstarter:in
10 Beiträge seit 2009
vor 13 Jahren

Danke euch! auch wenns dann heute lang wird, hehe...

Thema geschlossen