CA1711: Identifierare bör inte ha fel suffix
Property | Värde |
---|---|
Regel-ID | CA1711 |
Title | Identifierare bör inte ha felaktigt suffix |
Kategori | Namngivning |
Korrigeringen är icke-bakåtkompatibel | Brott |
Aktiverad som standard i .NET 9 | Nej |
Orsak
En identifierare har ett felaktigt suffix.
Som standard tittar den här regeln bara på externt synliga identifierare, men det kan konfigureras.
Regelbeskrivning
Enligt konventionen bör endast namnen på typer som utökar vissa bastyper eller som implementerar vissa gränssnitt, eller typer som härleds från dessa typer, sluta med specifika reserverade suffix. Andra typnamn bör inte använda dessa reserverade suffix.
I följande tabell visas de reserverade suffixen och de bastyper och gränssnitt som de är associerade med.
Suffix | Bastyp/gränssnitt |
---|---|
Attribut | System.Attribute |
Samling | System.Collections.ICollection System.Collections.IEnumerable System.Collections.Queue System.Collections.Stack System.Collections.Generic.ICollection<T> System.Data.DataSet System.Data.DataTable |
Ordlista | System.Collections.IDictionary System.Collections.Generic.IDictionary<TKey,TValue> |
EventArgs | System.EventArgs |
EventHandler | En händelsehanterardelegat |
Undantag | System.Exception |
Behörighet | System.Security.IPermission |
Queue | System.Collections.Queue |
Stack | System.Collections.Stack |
Stream | System.IO.Stream |
Dessutom bör inte följande suffix användas:
Delegate
Enum
Impl
(användCore
i stället)Ex
eller liknande suffix för att skilja det från en tidigare version av samma typFlag
ellerFlags
för uppräkningstyper
Namngivningskonventioner ger ett vanligt utseende för bibliotek som riktar sig till den gemensamma språkkörningen. 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. Mer information finns i Namngivningsriktlinjer: Klasser, structs och gränssnitt.
Så här åtgärdar du överträdelser
Ta bort suffixet från typnamnet.
När du ska ignorera varningar
Ignorera inte en varning från den här regeln om inte suffixet har en entydig innebörd i programdomänen.
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 CA1711
// The code that's violating the rule is on this line.
#pragma warning restore CA1711
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.CA1711.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 dessa alternativ för just 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
Tillåt suffix
Du kan konfigurera en lista över tillåtna suffix, där varje suffix avgränsas med pipe-tecknet ("|"). Om du till exempel vill ange att regeln inte ska köras mot suffixen Flagga och Flaggor lägger du till följande nyckel/värde-par i en .editorconfig-fil i projektet:
dotnet_code_quality.ca1711.allowed_suffixes = Flag|Flags