CA1058: I tipi non devono estendere tipi di base specifici
TypeName |
TypesShouldNotExtendCertainBaseTypes |
CheckId |
CA1058 |
Category |
Microsoft.Design |
Breaking Change |
Breaking |
Causa
Un tipo visibile esternamente estende tipi di base specifici. Attualmente questa regola riporta tipi che derivano dai seguenti:
Descrizione della regola
Per .NET Framework versione 1 si consigliava di derivare nuove eccezioni da ApplicationException. Tale consiglio non è più applicabile e le nuove eccezioni dovrebbero derivare da System.Exception o da una delle relative sottoclassi nello spazio dei nomi System.
Non creare una sottoclasse di XmlDocument se si desidera creare una visualizzazione XML di un'origine dati o di un modello a oggetti sottostante.
Insiemi non generici
Utilizzare e/o estendere insiemi generici ovunque possibile. Non estendere insiemi non generici nel codice, a meno che non si tratti di codice che si è già fornito in precedenza.
Esempi di utilizzo non corretto
public class MyCollection : CollectionBase
{
}
public class MyReadOnlyCollection : ReadOnlyCollectionBase
{
}
Esempi di utilizzo corretto
public class MyCollection : Collection<T>
{
}
public class MyReadOnlyCollection : ReadOnlyCollection<T>
{
}
Come correggere le violazioni
Per correggere una violazione di questa regola, derivare il tipo da un tipo base diverso o da un insieme generico diverso.
Esclusione di avvisi
Non escludere un avviso da questa regola per le violazioni che riguardano ApplicationException. L'esclusione di un avviso da questa regola è sicura per violazioni relative a XmlDocument. La soppressione di un avviso relativo a un insieme non generico è sicura se il codice è stato rilasciato in precedenza.