Compartir a través de


CA1710: Los identificadores deberían tener el sufijo correcto

TypeName

IdentifiersShouldHaveCorrectSuffix

Identificador de comprobación

CA1710

Categoría

Microsoft.Naming

Cambio problemático

Problemático

Motivo

Un identificador no tiene el sufijo correcto.

Descripción de la regla

Por convención, los nombres de tipos que extienden determinados tipos base o que implementan algunas interfaces, o tipos derivados de estos tipos, tienen un sufijo asociado al tipo base o a la interfaz.

Las convenciones de nomenclatura proporcionan una apariencia común para las bibliotecas destinadas a Common Language Runtime.Esto reduce la curva de aprendizaje necesaria para las nuevas bibliotecas de software y aumenta la confianza del cliente respecto a que la biblioteca se haya desarrollado por parte de un especialista en desarrollo de código administrado.

La tabla siguiente muestra los tipos base e interfaces con sufijos asociados.

Tipo base/Interfaz

Sufijo

Attribute

Atributo

EventArgs

EventArgs

Exception

Excepción

ICollection

Collection

IDictionary

Dictionary

IEnumerable

Collection

Queue

Colección o cola

Stack

Colección o pila

ICollection

Collection

IDictionary

Dictionary

DataSet

DataSet

DataTable

Colección o DataTable

Stream

Stream

IPermission

Permiso

IMembershipCondition

Condition

Un delegado de controlador de eventos.

EventHandler

Los tipos que implementan ICollection y que son un tipo de estructura de datos generalizada, como un diccionario, un pila o cola, son nombres permitidos que proporcionan información significativa sobre el uso que se le va a dar al tipo.

Los tipos que implementan ICollection y que forman parte de la colección de elementos específicos tienen nombres que terminan con la palabra "Collection".Por ejemplo, una colección de objetos Queue tendría el nombre "QueueCollection".El sufijo "Collection" significa que los miembros de la colección se pueden enumerar mediante la instrucción foreach (For Each en Visual Basic).

Los tipos que implementan IDictionary tienen nombres que finalizan con la palabra "Dictionary" incluso si el tipo también implementa IEnumerable o ICollection.Las convenciones de nomenclatura de uso de los sufijos "Collection" y "Dictionary" permiten a los usuarios distinguir entre los dos modelos de enumeración siguientes.

Los tipos con el sufijo "Collection" siguen este modelo de enumeración.

    foreach(SomeType x in SomeCollection) { }

Los tipos con el sufijo "Dictionary" siguen este modelo de enumeración.

    foreach(SomeType x in SomeDictionary.Values) { }

Un objeto DataSet está compuesto de una colección de objetos DataTable, compuestos de colecciones de DataColumn y objetos DataRow, entre otros.Estas colecciones implementan ICollection mediante de la clase base InternalDataCollectionBase.

Cómo corregir infracciones

Cambie el nombre del tipo para aplicar el sufijo con el término correcto.

Cuándo suprimir advertencias

Es seguro suprimir una advertencia al utilizar el sufijo "Collection" si el tipo tiene una estructura de datos generalizada que podría extenderse o contener una conjunto arbitrario de elementos diversos.En ese caso, podría tener sentido un nombre que proporciona información significativa sobre la implementación, rendimiento u otras características de la estructura de datos (por ejemplo, BinaryTree).En los casos en que un tipo representa una colección de un tipo específico (por ejemplo, StringCollection), no suprima ninguna advertencia de esta regla porque el sufijo indica que el tipo puede enumerarse mediante una instrucción foreach.

En caso de otros sufijos, no suprima ninguna advertencia de esta regla.El sufijo permite el uso que se le pretende dar resulte evidente por el nombre de tipo.

Reglas relacionadas

CA1711: Los identificadores no deberían tener el sufijo incorrecto

Vea también

Otros recursos

Attribute Usage Guidelines

Eventos y delegados