Delen via


CA2226: Operators moeten symmetrische overbelastingen hebben

Eigenschappen Weergegeven als
Regel-id CA2226
Titel Operators moeten symmetrische overbelastingen hebben
Categorie Gebruik
Oplossing is brekend of niet-brekend Niet-brekend
Standaard ingeschakeld in .NET 8 Nee

Oorzaak

Een type implementeert de gelijkheids- of ongelijkheidsoperator en implementeert niet de tegenovergestelde operator.

Deze regel kijkt standaard alleen naar extern zichtbare typen, maar dit kan worden geconfigureerd.

Beschrijving van regel

Er zijn geen omstandigheden waarin gelijkheid of ongelijkheid van toepassing is op instanties van een type en de tegenovergestelde operator niet is gedefinieerd. Typen implementeren doorgaans de ongelijkheidsoperator door de negatieve waarde van de gelijkheidsoperator te retourneren.

De C#-compiler geeft een fout op voor schendingen van deze regel.

Schendingen oplossen

Als u een schending van deze regel wilt oplossen, implementeert u zowel de gelijkheids- als ongelijkheidsoperators of verwijdert u de operator die aanwezig is.

Wanneer waarschuwingen onderdrukken

Een waarschuwing van deze regel niet onderdrukken. Als u dit doet, werkt uw type niet op een manier die consistent is met .NET.

Code configureren om te analyseren

Gebruik de volgende optie om te configureren op welke onderdelen van uw codebase deze regel moet worden uitgevoerd.

U kunt deze optie configureren voor alleen deze regel, voor alle regels waarop deze van toepassing is, of voor alle regels in deze categorie (gebruik) waarop deze van toepassing is. Zie de configuratieopties voor de codekwaliteitsregel voor meer informatie.

Specifieke API-oppervlakken opnemen

U kunt instellen op welke onderdelen van uw codebase deze regel moet worden uitgevoerd, op basis van hun toegankelijkheid. Als u bijvoorbeeld wilt opgeven dat de regel alleen moet worden uitgevoerd op het niet-openbare API-oppervlak, voegt u het volgende sleutel-waardepaar toe aan een .editorconfig-bestand in uw project:

dotnet_code_quality.CAXXXX.api_surface = private, internal