CA1717: Csak flagsAttribute enumerálásnak kell többes számú névvel rendelkeznie
Tulajdonság | Érték |
---|---|
Szabályazonosító | CA1717 |
Cím | Csak a FlagsAttribute enumerálásnak kell többes számokkal rendelkeznie |
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ás neve többes szóra végződik, és az enumerálás nincs megjelölve az System.FlagsAttribute attribútummal.
Alapértelmezés szerint ez a szabály csak külsőleg látható enumerálásokat tekint meg, de ez konfigurálható.
Szabály leírása
Az elnevezési konvenciók azt diktálják, hogy az enumerálás többes számú neve azt jelzi, hogy az enumerálás több értéke is megadható egyszerre. A FlagsAttribute fordítók azt jelzik, hogy az enumerálást bitmezőként kell kezelni, amely bitenkénti műveleteket tesz lehetővé az enumeráláson.
Ha egyszerre csak egy számbavételi érték adható meg, az enumerálás nevének egyedi szónak kell lennie. A hét napjait meghatározó enumerálás például egy olyan alkalmazásban használható, amelyben több napot is megadhat. Ennek az enumerálásnak "Days" (Napok) nevet kell adni FlagsAttribute . Egy hasonló számbavétel, amely csak egyetlen nap megadását teszi lehetővé, nem rendelkezik az attribútummal, és "Nap" néven is nevezhető.
Az elnevezési konvenciók gyakran keresik a közös nyelvi futtatókörnyezetet megcélzó kódtárakat. Ez csökkenti az új szoftvertárak megismeréséhez szükséges időt, és növeli az ügyfelek bizalmát abban, hogy a kódtárat olyan személy fejlesztette ki, aki jártas a felügyelt kód fejlesztésében.
Szabálysértések kijavítása
Az enumerálás nevét szingular szóvá alakíthatja, vagy hozzáadhatja a következőt FlagsAttribute:
Mikor kell letiltani a figyelmeztetéseket?
Nyugodtan letilthatja a szabály figyelmeztetését, ha a név egyes szavakban végződik.
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 CA1717
// The code that's violating the rule is on this line.
#pragma warning restore CA1717
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.CA1717.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
- CA1714: A jelzők számának többes számú névvel kell rendelkeznie
- CA1027: Számjelek megjelölése FlagsAttribute használatával
- CA2217: Ne jelölje meg a számokat a FlagsAttribute használatával