Condividi tramite


CA1000: Non dichiarare membri statici su tipi generici

TypeName

DoNotDeclareStaticMembersOnGenericTypes

CheckId

CA1000

Category

Microsoft.Design

Breaking Change

Breaking

Causa

Un tipo generico visibile contiene un membro static (Shared in Visual Basic).

Descrizione della regola

Quando viene chiamato un membro static di tipo generico, è necessario specificare l'argomento di tipo relativo al tipo.Quando viene chiamato un membro di istanza generica che non supporta l'inferenza, è necessario specificare l'argomento di tipo relativo al membro.La sintassi per la specifica dell'argomento di tipo in questi due casi è diversa e dà facilmente adito a confusione, come dimostrato nelle chiamate seguenti:

' Shared method in a generic type.
GenericType(Of Integer).SharedMethod()

' Generic instance method that does not support inference.
someObject.GenericMethod(Of Integer)()
// Static method in a generic type.
GenericType<int>.StaticMethod();

// Generic instance method that does not support inference.
someObject.GenericMethod<int>();

In generale è consigliabile evitare entrambe le dichiarazioni precedenti, in modo che non sia necessario specificare l'argomento di tipo quando viene chiamato il membro.Ne risulta una sintassi per la chiamata di membri in generics che non si differenzia dalla sintassi per membri non-generics.Per ulteriori informazioni, vedere CA1004: I metodi generici devono fornire parametri di tipo.

Come correggere le violazioni

Per correggere una violazione di questa regola, rimuovere il membro statico oppure cambiarlo in un membro di istanza.

Esclusione di avvisi

Non escludere un avviso da questa regola.La presenza di generics in una sintassi facile da comprendere e utilizzare riduce il tempo necessario all'apprendimento e aumenta la frequenza di adozione di nuove librerie.

Regole correlate

CA1005: Evitare un uso eccessivo di parametri nei tipi generici

CA1010: Le raccolte devono implementare un'interfaccia generica

CA1002: Non esporre elenchi 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#)