Identifiers should not contain type names
TypeName |
IdentifiersShouldNotContainTypeNames |
CheckId |
CA1720 |
Category |
Microsoft.Naming |
Breaking Change |
Breaking |
Cause
The name of a parameter in an externally visible member contains a type name.
Rule Description
Each concatenated word in the parameter name is checked against the following type names, in a case-insensitive manner:
bool
boolean
byte
char
double
float
float32
float64
int
int8
int16
int32
int64
integer
long
object
sbyte
short
single
string
uint
uint16
uint32
uint64
ulong
unsigned
ushort
wchar
Parameter names are better used to convey a parameter's meaning than to describe a parameter's type, which is expected to be provided by development tools. If a type name must be used, use a universal type name instead of a language-specific type name. For example, instead of the C# type name 'ushort', use the universal type name, UInt16.
How to Fix Violations
Select a parameter name that does not contain one of the previously listed type names.
When to Suppress Warnings
Occasional use of type-based parameter names might be appropriate. However, for new development, there are no known scenarios where it is necessary to suppress a warning from this rule. For shipping libraries, you might have to suppress a warning from this rule.
Related Rules
Identifiers should be cased correctly
Identifiers should differ by more than case