Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Hinweis
Dieser Inhalt wird mit Genehmigung von Pearson Education, Inc. aus Framework Design Guidelines: Konventionen, Idiome und Muster für wiederverwendbare .NET-Bibliotheken, 2. Auflage nachgedruckt. Diese Ausgabe wurde 2008 veröffentlicht, und das Buch wurde seitdem in der dritten Ausgabe vollständig überarbeitet. Einige der Informationen auf dieser Seite sind möglicherweise veraltet.
In diesem Abschnitt wird die Überladung von Gleichheitsoperatoren behandelt, wobei operator== und operator!= als Gleichheitsoperatoren bezeichnet werden.
❌ Überladen Sie NICHT einen der Gleichheitsoperatoren und den anderen nicht.
✔️ Stellen Sie sicher, dass Object.Equals und die Gleichheitsoperatoren genau die gleichen Semantik und ähnliche Leistungsmerkmale aufweisen.
Dies bedeutet häufig, dass Object.Equals überschrieben werden muss, wenn die Gleichheitsoperatoren überladen werden.
❌ VERMEIDEN Sie, Ausnahmen von Gleichheitsoperatoren aus auszulösen.
Geben Sie beispielsweise FALSE zurück, wenn eines der Argumente NULL ist, anstatt NullReferenceException auszulösen.
Gleichheitsoperatoren für Werttypen
✔️ Überladen Sie die Gleichheitsoperatoren bei Werttypen, wenn die Gleichheit sinnvoll ist.
In den meisten Programmiersprachen gibt es keine Standardimplementierung operator== für Werttypen.
Gleichheitsoperatoren für Verweistypen
❌ VERMEIDEN Sie die Überladung von Gleichheitsoperatoren für veränderbare Verweistypen.
Viele Sprachen verfügen über integrierte Gleichheitsoperatoren für Referenztypen. Die integrierten Operatoren implementieren in der Regel die Referenzgleichheit, und viele Entwickler sind überrascht, wenn das Standardverhalten in die Wertgleichstellung geändert wird.
Dieses Problem wird für unveränderliche Bezugstypen abgemildert, da die Unveränderlichkeit es viel schwieriger macht, den Unterschied zwischen Bezugsgleichheit und Wertgleichstellung zu erkennen.
❌ VERMEIDEN Sie die Überlastung von Gleichheitsoperatoren für Referenztypen, wenn die Implementierung wesentlich langsamer wäre als die der Referenzgleichheit.
© Teile 2005, 2009 Microsoft Corporation. Alle Rechte vorbehalten.
Nachdruck mit freundlicher Genehmigung von Pearson Education, Inc., aus dem Buch Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition von Krzysztof Cwalina und Brad Abrams, veröffentlicht am 22. Oktober 2008 von Addison-Wesley Professional als Teil der Microsoft Windows Development Series.