CA1000: Ne deklarálja a statikus tagokat általános típusok esetében
Tulajdonság | Érték |
---|---|
Szabályazonosító | CA1000 |
Cím | Ne deklarálja a statikus tagokat általános típusok esetében |
Kategória | Design |
A javítás kompatibilitástörő vagy nem törik | Törés |
Alapértelmezés szerint engedélyezve a .NET 8-ban | Nem |
Ok
Az általános típus tartalmaz egy (Shared
Visual Basic)-tagot static
.
Ez a szabály alapértelmezés szerint csak külsőleg látható típusokat tekint meg, de ez konfigurálható.
Szabály leírása
Amikor egy általános típus egy static
tagját meghívja, a típus argumentumát meg kell adni a típushoz. Ha olyan általános példánytagot hív meg, amely nem támogatja a következtetést, a típusargumentumot meg kell adni a tag számára. A típusargumentum megadásának szintaxisa ebben a két esetben eltérő és könnyen összekeverhető, ahogy az alábbi hívások is szemléltetik:
' 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>();
Általában mindkét korábbi deklarációt el kell kerülni, hogy a típusargumentumot ne kelljen megadni a tag meghívásakor. Ez egy szintaxist eredményez a tagok általánosakban való meghívásához, amely nem különbözik a nem általánosak szintaxisától.
Szabálysértések kijavítása
A szabály megsértésének kijavításához távolítsa el a statikus tagot, vagy módosítsa egy példánytagra.
Mikor kell letiltani a figyelmeztetéseket?
Ne tiltsa el a szabály figyelmeztetését. A könnyen érthető és használható szintaxisban szereplő általános értékek használata csökkenti a tanuláshoz szükséges időt, és növeli az új kódtárak bevezetési arányát.
Figyelmeztetés mellőzése
Ha csak egyetlen szabálysértést szeretne letiltani, adjon hozzá előfeldolgozási irányelveket a forrásfájlhoz a szabály letiltásához és újbóli engedélyezéséhez.
#pragma warning disable CA1000
// The code that's violating the rule is on this line.
#pragma warning restore CA1000
Ha le szeretné tiltani egy fájl, mappa vagy projekt szabályát, állítsa annak súlyosságát none
a konfigurációs fájlban.
[*.{cs,vb}]
dotnet_diagnostic.CA1000.severity = none
További információ: Kódelemzési figyelmeztetések letiltása.
Kód konfigurálása elemzéshez
A következő beállítással konfigurálhatja, hogy a kódbázis mely részein futtassa ezt a szabályt.
Ezt a beállítást konfigurálhatja csak erre a szabályra, az összes szabályra, vagy az ebben a kategóriában (Tervezés) érvényes összes szabályra. További információ: Kódminőségi szabály konfigurációs beállításai.
Adott API-felületek belefoglalása
A kódbázis azon részeit konfigurálhatja, amelyeken futtathatja ezt a szabályt az akadálymentességük alapján. Ha például meg szeretné adni, hogy a szabály csak a nem nyilvános API-felületen fusson, adja hozzá a következő kulcs-érték párot a projekt egyik .editorconfig fájljához:
dotnet_code_quality.CAXXXX.api_surface = private, internal
Kapcsolódó szabályok
- CA1005: Az általános típusok túlzott paramétereinek elkerülése
- CA1010: A gyűjteményeknek általános felületet kell implementálniuk
- CA1002: Ne tegye közzé az általános listákat
- CA1003: Általános eseménykezelő példányok használata
Kapcsolódó információk
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: