Udostępnij za pośrednictwem


DA0006: Zastępowanie Equals() dla typów wartości

Identyfikator reguły

DA0006

Kategoria

Użycie .NET Framework

Metody profilowania

Próbkowanie

Wiadomość

Zastąp metodę Equals i operator równości dla typów wartości.

Typ komunikatu

Ostrzeżenie

Przyczyna

Wywołania metody Equals lub operatora równości dla publicznych typów wartości są znaczącą częścią danych profilowania.Rozważ implementację bardziej efektywnej metody.

Opis reguły

Dla typów wartości, dziedziczona implementacja metody Equals wykorzystuje bibliotekę System.Reflection i porównuje zawartość wszystkich pól w typie.Odbicie jest obliczeniowo kosztowne, a porównanie równości każdego pola może być niepotrzebne.Jeśli oczekujesz, że użytkownicy będą porównywać lub sortować wystąpienia lub używać ich jako kluczy tablic skrótów, typ wartości powinien implementować metodę Equals.Jeśli język programowania obsługuje przeciążanie operatorów, należy również dostarczyć implementację operatorów równości i nierówności.

Aby uzyskać więcej informacji na temat zastępowania metody Equals i operatorów równości, zobacz Wytyczne dla implementacji metody Equals i operatora równości (==).

Jak badać ostrzeżenia

Aby uzyskać przykład implementacji metody Equals i operatora równości, zobacz regułę analizy kodu CA1815: Zastępowanie jest równe i operator jest równe na typy wartości