CA1720: Id's mogen geen typenamen bevatten
Eigenschappen | Weergegeven als |
---|---|
Regel-id | CA1720 |
Titel | Id's mogen geen typenamen bevatten |
Categorie | Naamgeving |
Oplossing is brekend of niet-brekend | Breken |
Standaard ingeschakeld in .NET 9 | Nee |
Oorzaak
De naam van een parameter in een lid bevat een naam voor het gegevenstype.
– of –
De naam van een lid bevat een taalspecifieke naam voor het gegevenstype.
Deze regel kijkt standaard alleen naar extern zichtbare leden, maar dit kan worden geconfigureerd.
Beschrijving van regel
Namen van parameters en leden worden beter gebruikt om hun betekenis te communiceren dan om hun type te beschrijven, wat naar verwachting wordt geleverd door ontwikkelhulpprogramma's. Als voor namen van leden een naam van het gegevenstype moet worden gebruikt, gebruikt u een taalonafhankelijke naam in plaats van een taalspecifieke naam. Gebruik bijvoorbeeld in plaats van de naam int
van het C#-type de naam van het taalonafhankelijke gegevenstype. Int32
Elk discrete token in de naam van de parameter of het lid wordt gecontroleerd op de volgende taalspecifieke gegevenstypenamen op een niet-hoofdlettergevoelige manier:
- Bool
- WChar
- Int8
- UInt8
- Kort
- UShort
- Int
- UInt
- Geheel getal
- UInteger
- Lang
- ULong
- Unsigned
- Ondertekend
- Float
- Float32
- Float64
Daarnaast worden de namen van een parameter ook gecontroleerd op de volgende taalonafhankelijke namen van gegevenstypen op een niet-hoofdlettergevoelige manier:
- Object
- Booleaanse waarde
- Char
- String
- SByte
- Byte
- UByte
- Int16
- UInt16
- Int32
- UInt32
- Int64
- UInt64
- IntPtr
- Ptr
- Aanwijzer
- UInptr
- UPtr
- UPointer
- Eén
- Dubbel
- Decimal
- Guid
Schendingen oplossen
Als deze wordt geactiveerd op basis van een parameter:
Vervang de gegevenstype-id in de naam van de parameter door een term die de betekenis beter beschrijft of een algemenere term, zoals 'waarde'.
Indien ontslagen tegen een lid:
Vervang de taalspecifieke gegevenstype-id in de naam van het lid door een term die de betekenis beter beschrijft, een taalonafhankelijk equivalent of een meer algemene term, zoals 'waarde'.
Wanneer waarschuwingen onderdrukken
Soms is het gebruik van op typen gebaseerde parameters en lidnamen mogelijk geschikt. Voor nieuwe ontwikkeling treden er echter geen bekende scenario's op waarbij u een waarschuwing van deze regel moet onderdrukken. Voor bibliotheken die eerder zijn verzonden, moet u mogelijk een waarschuwing van deze regel onderdrukken.
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 CA1720
// The code that's violating the rule is on this line.
#pragma warning restore CA1720
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.CA1720.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 (naamgeving) 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
Notitie
Vervang het XXXX
deel van CAXXXX
door de id van de toepasselijke regel.