CA1700: Ne nevezze el a "Fenntartott" enumerálási értékeket
Tulajdonság | Érték |
---|---|
Szabályazonosító | CA1700 |
Cím | Ne nevezze el a "Fenntartott" enumerálási értékeket |
Kategória | Elnevezés |
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 enumerálási tag neve tartalmazza a "reserved" szót.
Szabály leírása
Ez a szabály azt feltételezi, hogy a "reserved" nevet tartalmazó enumerálási tag jelenleg nem használatos, hanem egy helyőrző, amelyet egy későbbi verzióban át kell nevezni vagy el kell távolítani. A tagok átnevezése vagy eltávolítása kompatibilitástörő változás. Nem várhatja el, hogy a felhasználók figyelmen kívül hagyják a tagokat csak azért, mert a neve "fenntartott", és nem támaszkodhat arra, hogy a felhasználók elolvassák vagy betartsák a dokumentációt. Emellett mivel a fenntartott tagok objektumböngészőkben és intelligens integrált fejlesztési környezetekben jelennek meg, zavart okozhatnak azzal kapcsolatban, hogy mely tagokat használják ténylegesen.
Fenntartott tag használata helyett adjon hozzá egy új tagot az enumeráláshoz a jövőbeli verzióban. A legtöbb esetben az új tag hozzáadása nem jelent kompatibilitástörő változást, feltéve, hogy az összeadás nem eredményezi az eredeti tagok értékeinek változását.
Korlátozott számú esetben a tag hozzáadása akkor is kompatibilitástörő változás, ha az eredeti tagok megtartják eredeti értékeiket. Az új tagot elsősorban nem lehet visszaadni a meglévő kódútvonalakból anélkül, hogy a (Visual Basicben) utasítást switch
Select
használó hívók a teljes taglistát felölelő visszatérési értékre hivatkoznak, és az alapértelmezett esetben kivételt eredményeznek. Másodlagos probléma, hogy előfordulhat, hogy az ügyfélkód nem kezeli az olyan tükröződési módszerek viselkedésének változását, mint a System.Enum.IsDefined. Ennek megfelelően, ha az új tagot vissza kell adni a meglévő metódusokból, vagy egy ismert alkalmazáskompatibilitás a rossz tükröződési használat miatt következik be, az egyetlen nem törhető megoldás a következő:
Adjon hozzá egy új számbavételt, amely az eredeti és az új tagokat tartalmazza.
Jelölje meg az eredeti enumerálást az System.ObsoleteAttribute attribútummal.
Kövesse ugyanezt az eljárást az eredeti felsorolást közzétesző külsőleg látható típusok vagy tagok esetében is.
Szabálysértések kijavítása
A szabály megsértésének kijavításához távolítsa el vagy nevezze át a tagot.
Mikor kell letiltani a figyelmeztetéseket?
Biztonságosan letilthatja a szabály figyelmeztetését egy jelenleg használt tag vagy a korábban kiszállított kódtárak esetében.
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 CA1700
// The code that's violating the rule is on this line.
#pragma warning restore CA1700
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.CA1700.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 (elnevezés) szereplő összes szabályra, 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
CA2217: Ne jelölje meg a számokat a FlagsAttribute használatával
CA1712: A típusnévvel rendelkező enumerálási értékek előtagja nem
CA1028: Az enumerálási tárolónak Int32-nek kell lennie
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: