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 |
Sí |
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 |
---|---|
Atributo |
|
EventArgs |
|
Excepción |
|
Colección |
|
Dictionary |
|
Colección |
|
Colección o cola |
|
Colección o pila |
|
Colección |
|
Dictionary |
|
DataSet |
|
Colección o DataTable |
|
Stream |
|
Permiso |
|
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