DA0006: Equals() für Werttypen überschreiben

Regel-ID

DA0006

Kategorie (Category)

.NET Framework-Verwendung

Profilerstellungsmethoden

Sampling

Meldung

Equals und Gleichheitsoperator in Werttypen überschreiben

Meldungstyp

Warnung

Ursache

Aufrufe der Equals-Methode oder der Gleichheitsoperatoren eines öffentlichen Werttyps machen einen großen Teil der Profilerstellungsdaten aus.Implementieren Sie ggf. eine effizientere Methode.

Regelbeschreibung

Bei Werttypen wird die System.Reflection-Bibliothek von der geerbten Implementierung von Equals verwendet, und der Inhalt aller Felder wird verglichen.Reflection ist rechenintensiv, und das Überprüfen eines jeden Felds auf Gleichheit ist eventuell unnötig.Wenn Sie erwarten, dass die Benutzer Instanzen vergleichen oder sortieren bzw. dass sie diese als Schlüssel für Hashtabellen verwenden, sollte der Werttyp Equals implementieren.Wenn die Programmiersprache das Überladen von Operatoren unterstützt, sollten Sie außerdem eine Implementierung der Gleichheits- und Ungleichheitsoperatoren bereitstellen.

Weitere Informationen dazu, wie und Equals der Gleichheitsoperatoren, finden Sie überschreibt Richtlinien für die Implementierung von Equals verwendet und der Gleichheitsoperator (==).

Vorgehensweise bei der Überprüfung einer Warnung

Ein Beispiel zum Implementieren der Equals- und Gleichheitsoperatoren finden Sie in der Codeanalyseregel CA1815: Equals und Gleichheitsoperator für Werttypen überschreiben.