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