Ich habe zwei Objekte aus derselben Klasse und muss sie Feld für Feld vergleichen. Das Problem ist, dass sie fast hundert Felder haben und es wäre höllisch, das von Hand zu schreiben.
Weißt du irgendeinen Weg, das einfacher zu machen? Reflexionen in Java könnten eine Lösung sein, aber dennoch scheint es mir wie ein Hack zu sein. Und ich suche schließlich eine C # Lösung.
Zwei Ideen:
Verwenden Sie die Reflektion (es ist in C # verfügbar) Laufzeit und Schleife über die Felder der Klassen vergleichen sie. Wenn Sie bestimmte Felder ausschließen möchten, können Sie dies tun, indem Sie eine Attributklasse erstellen und die Felder markieren, die Sie nicht mit diesem Attribut vergleichen möchten.
Verwenden Sie die Reflektion, um die Felder auf die gleiche Weise zu durchlaufen und den erforderlichen Vergleichscode zu generieren. Auf diese Weise haben Sie "echten" Code, müssen diesen aber nicht selbst schreiben und pflegen. Attribute können verwendet werden, um den erzeugten Vergleichscode zu optimieren.
Verwenden Sie regulären Ausdruck suchen und ersetzen. Es ist ein Schmerz, wenn Sie Felder * hinzufügen müssen (entfernte bekommen Sie einen Kompilierfehler), aber Sie haben den Vorteil, kompilierten Code zu haben.
Aber denk wirklich darüber nach, die Klasse aufzuteilen. Wenn es 100 Felder gibt, können sie in Komponentenklassen gruppiert werden? 100 Mitglieder sind viel Chaos zu bewältigen.