Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All

Identifiers should not contain type names







Breaking Change


The name of a parameter in an externally visible member contains a type name.

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.

Select a parameter name that does not contain one of the previously listed type names.

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.

© 2015 Microsoft