Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Uwaga / Notatka
Ta treść jest przedrukowana za zgodą Pearson Education, Inc. z Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2. wydanie. Wydanie to zostało opublikowane w 2008 roku, a książka została w pełni zmieniona w trzecim wydaniu. Niektóre informacje na tej stronie mogą być nieaktualne.
W tej sekcji omówiono przeciążenie operatorów równości i określa operator== oraz operator!= jako operatory równości.
❌ NIE przeciążaj jednego z operatorów równości, a nie innych.
✔️ Upewnij się, że Object.Equals i operatory równości mają dokładnie taką samą semantykę i podobne cechy wydajności.
Często oznacza to, że Object.Equals należy przesłonić, gdy operatory równości są przeciążone.
❌ UNIKAJ zgłaszania wyjątków przy użyciu operatorów równości.
Na przykład zwróć false, jeśli jeden z argumentów ma wartość null zamiast zgłaszać NullReferenceException.
Operatory równości dla typów wartości
✔️ Przeciąż operatory równości dla typów wartościowych, jeśli równość ma sens.
W większości języków programowania nie ma domyślnej implementacji typu wartości dla operator==.
Operatory równości dla typów referencyjnych
❌ UNIKAJ przeciążania operatorów równości na modyfikowalnych typach referencyjnych.
Wiele języków ma wbudowane operatory równości dla typów referencyjnych. Wbudowane operatory zwykle implementują równość odwołań, a wielu programistów zaskakuje zmiana domyślnego zachowania na równość wartości.
Ten problem jest ograniczany w przypadku niezmiennych typów odwołań, ponieważ niezmienność znacznie utrudnia zauważenie różnicy między równością odwołań a równością wartości.
❌ UNIKAJ przeciążania operatorów równości w typach referencyjnych, jeśli implementacja byłaby znacznie wolniejsza niż równość referencyjna.
© Części 2005, 2009 Microsoft Corporation. Wszelkie prawa zastrzeżone.
Przedrukowane za zgodą Pearson Education, Inc. z Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition przez Krzysztofa Cwalinę i Brada Abramsa, opublikowane 22 października 2008 przez Addison-Wesley Professional w ramach serii Microsoft Windows Development.