CA1720: Identifierare får inte innehålla typnamn
Property | Värde |
---|---|
Regel-ID | CA1720 |
Title | Identifierare får inte innehålla typnamn |
Kategori | Namngivning |
Korrigeringen är icke-bakåtkompatibel | Brott |
Aktiverad som standard i .NET 9 | Nej |
Orsak
Namnet på en parameter i en medlem innehåller ett datatypsnamn.
-eller-
Namnet på en medlem innehåller ett språkspecifikt datatypsnamn.
Som standard tittar den här regeln bara på externt synliga medlemmar, men det kan konfigureras.
Regelbeskrivning
Namn på parametrar och medlemmar används bättre för att förmedla deras innebörd än för att beskriva deras typ, som förväntas tillhandahållas av utvecklingsverktyg. Om ett namn på en datatyp måste användas för namn på medlemmar använder du ett språkoberoende namn i stället för ett språkspecifikt namn. I stället för C#-typnamnet int
använder du till exempel namnet på den språkoberoende datatypen Int32
.
Varje diskret token i namnet på parametern eller medlemmen kontrolleras mot följande språkspecifika datatypsnamn på ett skiftlägesokänsligt sätt:
- Bool
- WChar
- Int8
- UInt8
- Kort
- UShort
- Int
- UInt
- Integer
- UInteger
- Long
- ULong
- Osignerad
- Undertecknad
- Flyttal
- Float32
- Float64
Dessutom kontrolleras namnen på en parameter mot följande språkoberoende datatypnamn på ett skiftlägesokänsligt sätt:
- Objekt
- Booleskt
- Char
- String
- SByte
- Byte
- UByte
- Int16
- UInt16
- Int32
- UInt32
- Int64
- UInt64
- IntPtr
- Ptr
- Pekare
- UInptr
- UPtr
- UPointer
- Enstaka
- Dubbel
- Decimal
- GUID
Så här åtgärdar du överträdelser
Om utlöses mot en parameter:
Ersätt datatypidentifieraren i parameterns namn med antingen en term som bättre beskriver dess innebörd eller en mer allmän term, till exempel "värde".
Om utlöses mot en medlem:
Ersätt den språkspecifika datatypidentifieraren i namnet på medlemmen med en term som bättre beskriver dess innebörd, en språkoberoende motsvarighet eller en mer allmän term, till exempel "värde".
När du ska ignorera varningar
Enstaka användningar av typbaserade parameter- och medlemsnamn kan vara lämpliga. För ny utveckling sker dock inga kända scenarier där du bör ignorera en varning från den här regeln. För bibliotek som tidigare har levererats kan du behöva ignorera en varning från den här regeln.
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 CA1720
// The code that's violating the rule is on this line.
#pragma warning restore CA1720
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.CA1720.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.