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