Non esporre elenchi generici

Aggiornamento: novembre 2007

TypeName

DoNotExposeGenericLists

CheckId

CA1002

Categoria

Microsoft.Design

Breaking Change

Breaking

Causa

Un tipo contiene un membro visibile esternamente che corrisponde a un tipo System.Collections.Generic.List<T>, restituisce un tipo System.Collections.Generic.List<T> oppure la cui firma include un parametro System.Collections.Generic.List<T>.

Descrizione della regola

System.Collections.Generic.List<T> è un insieme generico progettato per le prestazioni e non per l'ereditarietà, pertanto non contiene membri virtuali. Gli insiemi seguenti sono stati progettati per l'ereditarietà e dovrebbero essere esposti in luogo di System.Collections.Generic.List<T>.

Correzione di violazioni

Per correggere una violazione di questa regola, modificare il tipo System.Collections.Generic.List<T> in uno degli insiemi generici progettati per l'ereditarietà.

Esclusione di avvisi

Non escludere un avviso da questa regola a meno che non si preveda di considerare l'assembly che ha generato l'avviso una libreria riutilizzabile. Ad esempio, potrebbe essere sicuro escludere l'avviso in un un'applicazione di regolazione delle prestazioni in cui si sia ottenuto un miglioramento delle prestazioni mediante l'utilizzo degli elenchi generici.

Regole correlate

Evitare un uso eccessivo di parametri nei tipi generici

Gli insiemi devono implementare un'interfaccia generica

Non dichiarare membri statici su tipi generici

Non nidificare tipi generici nelle firme dei membri

I metodi generici devono fornire parametri di tipo

Utilizzare istanze di gestori eventi generici

Utilizzare generics quando opportuno

Vedere anche

Riferimenti

Generics (Guida per programmatori C#)