CA2226: Operatory powinny być przeciążane symetrycznie
Właściwości | Wartość |
---|---|
Identyfikator reguły | CA2226 |
Tytuł | Operatory powinny mieć symetryczne przeciążenia |
Kategoria | Użycie |
Poprawka powodująca niezgodność lub niezgodność | Niezgodność |
Domyślnie włączone na platformie .NET 9 | Nie. |
Przyczyna
Typ implementuje operator równości lub nierówności, ale nie implementuje operatora przeciwnego.
Domyślnie ta reguła analizuje tylko typy widoczne zewnętrznie, ale można to skonfigurować.
Opis reguły
Nie ma sytuacji, w których równość lub nierówności mają zastosowanie do wystąpień typu, a przeciwny operator jest niezdefiniowany. Typy zazwyczaj implementują operator nierówności, zwracając negowaną wartość operatora równości.
Kompilator języka C# zgłasza błąd naruszenia tej reguły.
Jak naprawić naruszenia
Aby naprawić naruszenie tej reguły, zaimplementuj operatory równości i nierówności lub usuń ten, który jest obecny.
Kiedy pomijać ostrzeżenia
Nie pomijaj ostrzeżeń dla tej reguły. Jeśli to zrobisz, typ nie będzie działać w sposób zgodny z platformą .NET.
Konfigurowanie kodu do analizowania
Użyj następującej opcji, aby skonfigurować, które części bazy kodu mają być uruchamiane w tej regule.
Tę opcję można skonfigurować tylko dla tej reguły, dla wszystkich reguł, których dotyczy, lub dla wszystkich reguł w tej kategorii (użycie), do których ma ona zastosowanie. Aby uzyskać więcej informacji, zobacz Opcje konfiguracji reguły jakości kodu.
Uwzględnij określone powierzchnie interfejsu API
Możesz skonfigurować, na których częściach bazy kodu ma być uruchamiana ta reguła, na podstawie ich ułatwień dostępu. Aby na przykład określić, że reguła powinna być uruchamiana tylko na powierzchni niepublicznego interfejsu API, dodaj następującą parę klucz-wartość do pliku editorconfig w projekcie:
dotnet_code_quality.CAXXXX.api_surface = private, internal