Udostępnij za pośrednictwem


CA1000: Nie deklaruj statycznych elementów członkowskich na typach generycznych

TypeName

DoNotDeclareStaticMembersOnGenericTypes

CheckId

CA1000

Kategoria

Microsoft.Design

Zmiana kluczowa

Kluczowa

Przyczyna

Widoczny z zewnątrz typ generyczny zawiera element członkowski static (Shared w języku Visual Basic).

Opis reguły

Gdy element członkowski static typu generycznego jest wywołany, należy określić typ argumentu dla typu.Po wywołaniu wystąpienia generycznego elementu członkowskiego, który nie obsługuje wnioskowania, argument typu musi zostać określony dla elementu członkowskiego.Składnia dla określania argumentu typu w tych dwóch przypadkach jest różna i łatwa do pomylenia, jak pokazuje następujące wywołanie:

' 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>();

Ogólnie obu wcześniejszych deklaracji należy unikać tak, aby argument typu nie był konieczny do określania, podczas gdy element członkowski jest wywoływany.To skutkuje to w składni dla wywoływania elementów członkowski w typach generycznych, co nie jest różne się od składni dla typów nie-ogólnych.Aby uzyskać więcej informacji, zobacz CA1004: Generyczne metody powinny dostarczyć parametry typu.

Jak naprawić naruszenia

Aby naprawić naruszenie tej zasady, usuń statyczny element członkowski lub zmień go na element członkowski wystąpienia.

Kiedy pominąć ostrzeżenia

Nie należy pomijać ostrzeżenia dotyczącego tej reguły.Dostarczanie ogólników w składni, które są łatwe do zrozumienia i użycia, skraca czas wymagany do nauki i zwiększa szybkość procesu wdrażania nowych bibliotek.

Powiązane reguły

CA1005: Unikaj nadużywania parametrów na typach generycznych

CA1010: Kolekcje powinny implementować interfejs generyczny

CA1002: Nie ujawniaj list generycznych

CA1006: Nie zagnieżdżaj typów generycznych w podpisach elementu członkowskiego

CA1004: Generyczne metody powinny dostarczyć parametry typu

CA1003: Użyj wystąpień obsługi zdarzeń generycznych

CA1007: Używaj danych generycznych wszędzie, gdzie jest to odpowiednie

Zobacz też

Informacje

Typy ogólne (Przewodnik programowania w języku C#)