CA1058: Tipos de não devem estender a determinados tipos de base
TypeName |
TypesShouldNotExtendCertainBaseTypes |
CheckId |
CA1058 |
<strong>Categoria</strong> |
Microsoft.design |
Alteração significativa |
Quebrando |
Causa
Um tipo visível externamente estende a determinados tipos de base. Atualmente, essa regra relatórios tipos que derivam dos seguintes tipos:
Descrição da regra
Para .NET Framework versão 1, era recomendável para derivar novas exceções de ApplicationException. A recomendação foi alterado e novas exceções devem derivar de System.Exception ou uma de suas subclasses na System namespace.
Não crie uma subclasse de XmlDocument se você deseja criar um modo de exibição XML de um subjacente objeto modelo ou dados de origem.
Coleções não genéricas
Usar e/ou estender coleções genéricas, sempre que possível. Não se estendem a coleções não genéricas no seu código, a menos que o fornecido anteriormente.
Exemplos de uso incorreto
public class MyCollection : CollectionBase
{
}
public class MyReadOnlyCollection : ReadOnlyCollectionBase
{
}
Exemplos de uso correto
public class MyCollection : Collection<T>
{
}
public class MyReadOnlyCollection : ReadOnlyCollection<T>
{
}
Como corrigir violações
Para corrigir uma violação desta regra, derive o tipo de um tipo diferente de base ou uma coleção genérica.
Quando suprimir avisos
Não suprimir um aviso da regra de violações sobre ApplicationException. É seguro eliminar um aviso esta regra de violações sobre XmlDocument. É seguro suprimir um aviso sobre uma coleção não genéricas, se o código foi lançado anteriormente.