CA1717: Endast FlagsAttribute-uppräkningar ska ha pluralnamn
Property | Värde |
---|---|
Regel-ID | CA1717 |
Title | Endast FlagsAttribute-uppräkningar ska ha pluralnamn |
Kategori | Namngivning |
Korrigeringen är icke-bakåtkompatibel | Brott |
Aktiverad som standard i .NET 9 | Nej |
Orsak
Namnet på en uppräkning slutar i ett pluralord och uppräkningen markeras inte med System.FlagsAttribute attributet.
Som standard tittar den här regeln bara på externt synliga uppräkningar, men det kan konfigureras.
Regelbeskrivning
Namngivningskonventioner kräver att ett pluralnamn för en uppräkning anger att mer än ett värde för uppräkningen kan anges samtidigt. FlagsAttribute Talar om för kompilatorerna att uppräkningen ska behandlas som ett bitfält som möjliggör bitvis åtgärder i uppräkningen.
Om endast ett värde för en uppräkning kan anges i taget, bör namnet på uppräkningen vara ett singularord. 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 vanligt utseende för bibliotek som riktar sig till den gemensamma språkkörningen. Detta minskar den tid som krävs för att lära sig ett nytt 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 singularord eller lägg till FlagsAttribute.
När du ska ignorera varningar
Det är säkert att ignorera en varning från regeln om namnet slutar med ett enda ord.
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 CA1717
// The code that's violating the rule is on this line.
#pragma warning restore CA1717
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.CA1717.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 API-ytor
Du kan konfigurera vilka delar av kodbasen som ska köras med den här regeln baserat på deras tillgänglighet. 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
Not
Ersätt den XXXX
delen av CAXXXX
med ID:t för den tillämpliga regeln.
Relaterade regler
- CA1714: Flaggor som räknas upp ska ha pluralnamn
- CA1027: Markera uppräkningar med FlagsAttribute
- CA2217: Markera inte uppräkningar med FlagsAttribute