Freigeben über


Gleichheitsoperatoren

Hinweis

Diese Inhalte wurden mit Genehmigung von Pearson Education, Inc. aus Framework Design Guidelines nachgedruckt: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition. 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 das Überladen von Gleichheitsoperatoren erläutert. Dabei wird auf die Gleichheitsoperatoren operator== und operator!= Bezug genommen.

❌ Überladen Sie NICHT einen der Gleichheitsoperatoren und den anderen nicht.

✔️ STELLEN SIE SICHER, dass Object.Equals und die Gleichheitsoperatoren genau dieselbe 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 für Werttypen, wenn die Gleichheit sinnvoll ist.

In den meisten Programmiersprachen gibt es keine Standardimplementierung von operator== für Werttypen.

Gleichheitsoperatoren für Verweistypen

❌ VERMEIDEN Sie das Überladen von Gleichheitsoperatoren für änderbare Verweistypen.

Viele Sprachen verfügen über integrierte Gleichheitsoperatoren für Verweistypen. Die integrierten Operatoren implementieren in der Regel die Verweisgleichheit, und viele Entwickler sind überrascht, wenn das Standardverhalten der Wertgleichheit geändert wird.

Dieses Problem wird für unveränderliche Verweistypen behoben, da Unveränderlichkeit das Erkennen des Unterschieds zwischen Verweisgleichheit und Wertgleichheit erheblich erschwert.

❌ VERMEIDEN Sie das Überladen von Gleichheitsoperatoren für Verweistypen, wenn die Implementierung erheblich langsamer wäre als die Verweisgleichheit.

Teile ©2005, 2009 Microsoft Corporation. Alle Rechte vorbehalten.

Nachdruck mit Genehmigung von Pearson Education, Inc aus 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 durch Addison-Wesley Professional als Teil der Microsoft Windows Development Series.

Weitere Informationen