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