Condividi tramite


CA1002: Non esporre elenchi generici

TypeName

DoNotExposeGenericLists

CheckId

CA1002

Category

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à. System.Collections.Generic.List<T> non contiene membri virtuali che rendono più semplice la modifica del comportamento di una classe ereditata. Gli insiemi seguenti sono stati progettati per l'ereditarietà e dovrebbero essere esposti in luogo di System.Collections.Generic.List<T>.

Come correggere le 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

CA1005: Evitare un uso eccessivo di parametri nei tipi generici

CA1010: Gli insiemi devono implementare un'interfaccia generica

CA1000: Non dichiarare membri statici su tipi generici

CA1006: Non annidare tipi generici nelle firme dei membri

CA1004: I metodi generici devono fornire parametri di tipo

Ca1003: Utilizzare istanze di gestori eventi generici

CA1007: Utilizzare generics dove appropriato

Vedere anche

Riferimenti

Generics (Guida per programmatori C#)