CA1710:标识符应具有正确的后缀

类型名

IdentifiersShouldHaveCorrectSuffix

CheckId

CA1710

类别

Microsoft.Naming

是否重大更改

原因

标识符的后缀不正确。

规则说明

按照约定,扩展某些基类型或实现某些接口的类型的名称,或者由这些类型派生的类型的名称应具有与相应基类型或接口关联的后缀。

命名约定为所有针对公共语言运行时的库提供了通用的外观。 这提高了学习新软件库的效率,并使客户进一步认为该软件库是由某位具有开发托管代码专门技术的人员所开发。

下表列出了具有关联后缀的基类型和接口。

基类型/接口

后缀

System.Attribute

特性

System.EventArgs

EventArgs

System.Exception

异常

System.Collections.ICollection

Collection

System.Collections.IDictionary

Dictionary

System.Collections.IEnumerable

Collection

System.Collections.Queue

Collection 或 Queue

System.Collections.Stack

Collection 或 Stack

System.Collections.Generic.ICollection<T>

Collection

System.Collections.Generic.IDictionary<TKey, TValue>

Dictionary

System.Data.DataSet

数据集

System.Data.DataTable

Collection 或 DataTable

System.IO.Stream

System.Security.IPermission

权限

System.Security.Policy.IMembershipCondition

Condition

事件处理程序委托。

EventHandler

对于实现 ICollection 并且是数据结构(如字典、堆栈或队列)的通用类型的类型,允许使用提供有关该类型预定用法的有意义信息的名称。

而对于实现 ICollection 并且是特定项集合的类型,其名称则必须以单词“Collection”结尾。 例如,Queue 对象集合的名称应为“QueueCollection”。 “Collection”后缀标识可使用 foreach(在 Visual Basic 中为 For Each)语句枚举该集合的成员。

对于实现 IDictionary 的类型,其名称以单词“Dictionary”结尾,即使该类型还实现 IEnumerableICollection。 使用“Collection”和“Dictionary”后缀命名约定,用户可区分下面两种枚举模式。

具有后缀“Collection”的类型遵循以下枚举模式。

    foreach(SomeType x in SomeCollection) { }

具有后缀“Dictionary”的类型遵循以下枚举模式。

    foreach(SomeType x in SomeDictionary.Values) { }

DataSet 对象由 DataTable 对象的集合组成,而该集合由 System.Data.DataColumnSystem.Data.DataRow 对象以及其他对象的集合组成。 这些集合通过基 System.Data.InternalDataCollectionBase 类实现 ICollection

如何解决冲突

重命名类型,使其具有包含正确术语的后缀。

何时禁止显示警告

如果类型是可扩展或将包含任意一组不同项目的通用数据结构,则可以安全地禁止显示警告以使用后缀“Collection”。 在这种情况下,提供有关数据结构的实现、性能或其他特性的有价值信息的名称(例如,BinaryTree)十分有意义。 对于类型代表特定类型集合(例如,StringCollection)的情况,不要禁止显示此规则发出的警告,因为该后缀指示可使用 foreach 语句枚举该类型。

对于其他后缀,不要禁止显示此规则发出的警告。 使用该后缀,可通过类型名称体现预定用法。

相关规则

CA1711:标识符应采用正确的后缀

请参见

参考

Attribute Usage Guidelines

其他资源

事件和委托