Compartir a través de


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

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.