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