CA1058: Los tipos no deben ampliar ciertos tipos base
Nombre de tipo |
TypesShouldNotExtendCertainBaseTypes |
Identificador de comprobación |
CA1058 |
Categoría |
Microsoft.Design |
Cambio problemático |
Sí |
Causa
Un tipo visible externamente extiende algunos tipos base. En la actualidad, esta regla muestra los tipos que se derivan de los tipos siguientes:
Descripción de la regla
En .NET Framework versión 1, se recomendaba derivar las nuevas excepciones de ApplicationException. La recomendación ha cambiado y las nuevas excepciones deberían derivar de System.Exception o de una de sus subclases en el espacio de nombres System.
No cree una subclase de XmlDocument si desea crear una vista de XML de un modelo de objetos u origen de datos subyacente.
Colecciones no genéricas
Utilice y/o extienda las colecciones genéricas siempre que sea posible. No extienda las colecciones no genéricas en su código, a menos que previamente lo hubiera distribuido.
Ejemplos de uso incorrecto
public class MyCollection : CollectionBase
{
}
public class MyReadOnlyCollection : ReadOnlyCollectionBase
{
}
Ejemplos de uso correcto
public class MyCollection : Collection<T>
{
}
public class MyReadOnlyCollection : ReadOnlyCollection<T>
{
}
Cómo corregir infracciones
Para corregir una infracción de esta regla, derive el tipo desde un tipo base diferente o desde una colección genérica.
Cuándo suprimir advertencias
No suprima una advertencia de esta regla para las infracciones relativas a ApplicationException. Es seguro suprimir una advertencia de esta regla para las infracciones relativas a XmlDocument. Es seguro suprimir una advertencia sobre una colección no genérica si previamente se liberó código.