CA1002: Ne tegye közzé az általános listákat
Tulajdonság | Érték |
---|---|
Szabályazonosító | CA1002 |
Cím | Általános listák nem tehetők elérhetővé |
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
A típus egy külsőleg látható tagot tartalmaz, amely egy System.Collections.Generic.List<T> típus, egy típust List<T> ad vissza, vagy amelynek az aláírása tartalmaz egy paramétert List<T> .
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
System.Collections.Generic.List<T> Egy általános gyűjtemény, amely teljesítményre és nem öröklésre lett tervezve. List<T> nem tartalmaz olyan virtuális tagokat, amelyek megkönnyítik az örökölt osztályok viselkedésének módosítását. A következő általános gyűjtemények öröklésre vannak tervezve, és ahelyett, hogy közzé kellene tenni őket List<T>.
Szabálysértések kijavítása
A szabály megsértésének kijavításához módosítsa a System.Collections.Generic.List<T> típust az öröklésre tervezett általános gyűjtemények egyikére.
Mikor kell letiltani a figyelmeztetéseket?
Ne tiltsa le a szabály figyelmeztetését, hacsak a figyelmeztetést indító szerelvény nem újrafelhasználható kódtárnak minősül. Ezt a figyelmeztetést például nyugodtan el lehet tiltani egy teljesítményalapú alkalmazásban, ahol az általános listák használatából származó teljesítménybeli előny származik.
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 CA1002
// The code that's violating the rule is on this line.
#pragma warning restore CA1002
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.CA1002.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 ehhez a szabályhoz, az összes szabályhoz, vagy az ebben a kategóriában (Tervezés) szereplő összes szabályhoz, amelyekre vonatkozik. 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
CA1000: Ne deklarálja a statikus tagokat általános típusok esetében
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: