Condividi tramite


I tipi non devono estendere tipi di base specifici

Aggiornamento: novembre 2007

TypeName

TypesShouldNotExtendCertainBaseTypes

CheckId

CA1058

Categoria

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>
{
}

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