Udostępnij za pośrednictwem


CA1000: Elementy statyczne nie są deklarowane w typach podstawowych

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: Metody rodzajowe powinny dostarczyć parametr 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: Uniknąć nadmiernego parametrów na typy rodzajowe

CA1010: Kolekcji należy implementować interfejs rodzajowy

CA1002: Nie będą uwidaczniać rodzajowy list

CA1006: Nie zagnieżdżaj typy rodzajowe w Członkowskim podpisów

CA1004: Metody rodzajowe powinny dostarczyć parametr typu

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

CA1007: Użyj generyczne, gdzie stosowne

Zobacz też

Informacje

Generyczne (Podręcznik programowania C#)