Delen via


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 8 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