Condividi tramite


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 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.