CA1714: Flaggor som räknas upp ska ha pluralnamn

Egenskap Värde
Regel-ID CA1714
Title Flagguppräkningar bör ha pluralnamn
Kategori Namngivning
Korrigeringen är antingen invasiv eller icke-invasiv Avbrott
Aktiverad som standard i .NET 10 Nej
Tillämpliga språk C# och Visual Basic

Orsak

En uppräkning har System.FlagsAttribute och dess namn slutar inte i 's'.

Som standard tittar den här regeln bara på externt synliga uppräkningar, men det kan konfigureras.

Regelbeskrivning

Typer som är markerade med FlagsAttribute har namn som är plural eftersom attributet anger att mer än ett värde kan anges. En uppräkning som definierar veckodagarna kan till exempel vara avsedd att användas i ett program där du kan ange flera dagar. Den här uppräkningen bör ha FlagsAttribute och kan kallas "Dagar". En liknande uppräkning som tillåter att endast en enda dag anges har inte attributet och kan kallas "Dag".

Namngivningskonventioner ger ett enhetligt utseende för bibliotek som riktar sig mot Common Language Runtime (CLR). Detta minskar inlärningskurvan som krävs för nya programvarubibliotek och ökar kundernas förtroende för att biblioteket har utvecklats av någon som har kunskaper om att utveckla hanterad kod.

Så här åtgärdar du överträdelser

Gör uppräkningsnamnet till ett pluralord eller ta bort FlagsAttribute attributet om flera uppräkningsvärden inte ska anges samtidigt.

När du ska ignorera varningar

Det är säkert att förhindra en överträdelse om namnet är ett pluralord men inte slutar i "s". Om den flerdagarsuppräkning som beskrevs tidigare hette DaysOfTheWeek skulle detta till exempel strida mot logiken i regeln, men inte dess avsikt. Sådana överträdelser bör undertryckas.

Ignorera en varning

Om du bara vill förhindra en enda överträdelse lägger du till förprocessordirektiv i källfilen för att inaktivera och aktiverar sedan regeln igen.

#pragma warning disable CA1714
// The code that's violating the rule is on this line.
#pragma warning restore CA1714

Om du vill inaktivera regeln för en fil, mapp eller ett projekt anger du dess allvarlighetsgrad till none i konfigurationsfilen.

[*.{cs,vb}]
dotnet_diagnostic.CA1714.severity = none

Mer information finns i Så här utelämnar du kodanalysvarningar.

Konfigurera kod för analys

Använd följande alternativ för att konfigurera vilka delar av kodbasen som regeln ska köras på.

Du kan konfigurera det här alternativet för bara den här regeln, för alla regler som den gäller för eller för alla regler i den här kategorin (namngivning) som den gäller för. Mer information finns i Konfigurationsalternativ för kodkvalitetsregel.

Inkludera specifika ytor för API:er

Du kan konfigurera vilka delar av kodbasen som ska köra den här regeln baserat på deras tillgänglighet genom att ange alternativet api_surface. Om du till exempel vill ange att regeln endast ska köras mot den icke-offentliga API-ytan lägger du till följande nyckel/värde-par i en .editorconfig-fil i projektet:

dotnet_code_quality.CAXXXX.api_surface = private, internal

Anteckning

Ersätt den XXXX delen av CAXXXX med ID:t för den tillämpliga regeln.

Se även