CA1030: Gebruik waar nodig gebeurtenissen
Eigenschappen | Weergegeven als |
---|---|
Regel-id | CA1030 |
Titel | Gebeurtenissen gebruiken indien van toepassing |
Categorie | Ontwerpen |
Oplossing is brekend of niet-brekend | Niet-brekend |
Standaard ingeschakeld in .NET 9 | Nee |
Oorzaak
Een methodenaam begint met een van de volgende:
- AddOn
- RemoveOn
- Brand
- Verhogen
Deze regel kijkt standaard alleen naar extern zichtbare methoden, maar dit is configureerbaar.
Beschrijving van regel
Deze regel detecteert methoden met namen die normaal gesproken worden gebruikt voor gebeurtenissen. Gebeurtenissen volgen het ontwerppatroon Waarnemer of Publish-Subscribe; ze worden gebruikt wanneer een statuswijziging in het ene object moet worden doorgegeven aan andere objecten. Als een methode wordt aangeroepen als reactie op een duidelijk gedefinieerde statuswijziging, moet de methode worden aangeroepen door een gebeurtenis-handler. Objecten die de methode aanroepen, moeten gebeurtenissen genereren in plaats van de methode rechtstreeks aan te roepen.
Enkele veelvoorkomende voorbeelden van gebeurtenissen worden gevonden in gebruikersinterfacetoepassingen waarbij een gebruikersactie, zoals klikken op een knop, ertoe leidt dat een codesegment wordt uitgevoerd. Het .NET-gebeurtenismodel is niet beperkt tot gebruikersinterfaces. Deze moet overal worden gebruikt waar u statuswijzigingen moet doorgeven aan een of meer objecten.
Schendingen oplossen
Als de methode wordt aangeroepen wanneer de status van een object wordt gewijzigd, kunt u het ontwerp wijzigen om het .NET-gebeurtenismodel te gebruiken.
Wanneer waarschuwingen onderdrukken
Onderdrukt een waarschuwing van deze regel als de methode niet werkt met het .NET-gebeurtenismodel.
Een waarschuwing onderdrukken
Als u slechts één schending wilt onderdrukken, voegt u preprocessorrichtlijnen toe aan uw bronbestand om de regel uit te schakelen en vervolgens opnieuw in te schakelen.
#pragma warning disable CA1030
// The code that's violating the rule is on this line.
#pragma warning restore CA1030
Als u de regel voor een bestand, map of project wilt uitschakelen, stelt u de ernst none
ervan in op het configuratiebestand.
[*.{cs,vb}]
dotnet_diagnostic.CA1030.severity = none
Zie Codeanalysewaarschuwingen onderdrukken voor meer informatie.
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 (ontwerp) 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