Compartir a través de


CA1710: Los identificadores deberían tener el sufijo correcto

Nombre de tipo

IdentifiersShouldHaveCorrectSuffix

Identificador de comprobación

CA1710

Categoría

Microsoft.Naming

Cambio problemático

Causa

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 a las bibliotecas orientadas a Common Language Runtime. Esto reduce la curva de aprendizaje necesaria para las nuevas bibliotecas de software y aumenta la confianza por parte del cliente en lo que respecta a que la biblioteca fue desarrollada por un especialista en desarrollo de código administrado.

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

Tipo base/Interfaz

Sufijo

System.Attribute

Atributo

System.EventArgs

EventArgs

System.Exception

Excepción

System.Collections.ICollection

Colección

System.Collections.IDictionary

Dictionary

System.Collections.IEnumerable

Colección

System.Collections.Queue

Colección o cola

System.Collections.Stack

Colección o pila

System.Collections.Generic.ICollection<T>

Colección

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

Dictionary

System.Data.DataSet

DataSet

System.Data.DataTable

Colección o DataTable

System.IO.Stream

Stream

System.Security.IPermission

Permiso

System.Security.Policy.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 System.Data.DataColumn y objetos System.Data.DataRow, entre otros. Estas colecciones implementan ICollection mediante de la clase base System.Data.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

Referencia

Instrucciones de uso de atributos

Conceptos

Eventos y delegados