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.
Raccolte non generiche
Utilizzare e/o estendere raccolte generiche ovunque possibile.Non estendere raccolte non generiche 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 una raccolta generica diversa.
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 una raccolta non generica è sicura se il codice è stato rilasciato in precedenza.