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> è una raccolta generica progettata 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.Le raccolte seguenti sono state progettate per l'ereditarietà e dovrebbero essere esposte 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 una delle raccolte generiche progettate 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: Le raccolte 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