CA1307: StringComparison megadása az egyértelműség érdekében
Tulajdonság | Érték |
---|---|
Szabályazonosító | CA1307 |
Cím | A StringComparison megadása az egyértelműség érdekében |
Kategória | Globalizáció |
A javítás kompatibilitástörő vagy nem törik | Nem törés |
Alapértelmezés szerint engedélyezve a .NET 9-ben | Nem |
Ok
A sztring-összehasonlító műveletek olyan metódust használnak, amely nem állít be paramétert StringComparison .
Szabály leírása
Számos sztring-összehasonlítási művelet túlterhelést biztosít, amely paraméterként enumerálási értéket fogad el StringComparison .
Ha olyan túlterhelés áll fenn, amely egy paramétert StringComparison használ, akkor a paramétert nem használó túlterhelés helyett kell használni. A paraméter explicit beállításával a kód gyakran egyértelműbb és könnyebben karbantartható. További információ: Sztring-összehasonlítások explicit megadása.
Feljegyzés
Ez a szabály nem veszi figyelembe az összehasonlítási módszer által használt alapértelmezett StringComparison értéket. Ezért előfordulhat, hogy zajos lehet a sztring-összehasonlítást alapértelmezés szerint használó Ordinal
metódusok esetében, és a felhasználó ezt az alapértelmezett összehasonlítási módot szeretné használni.
Ha csak a kultúraspecifikus sztring-összehasonlítást alapértelmezés szerint használó ismert sztringmetópok szabálysértéseit szeretné látni, használja inkább a CA1310: StringComparison megadása a helyességet .
Szabálysértések kijavítása
A szabály megsértésének kijavításához módosítsa a sztring-összehasonlító metódusokat olyan túlterhelésekre, amelyek paraméterként elfogadják az StringComparison enumerálást. Például váltson a str1.IndexOf(ch1)
következőre str1.IndexOf(ch1, StringComparison.Ordinal)
: .
Mikor kell letiltani a figyelmeztetéseket?
A szabályból származó figyelmeztetést nyugodtan el lehet tiltani, ha nincs szükség a szándék egyértelműségére. Előfordulhat például, hogy a tesztkódot vagy a nem honosítható kódot nem kötelező megadni.
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 CA1307
// The code that's violating the rule is on this line.
#pragma warning restore CA1307
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.CA1307.severity = none
További információ: Kódelemzési figyelmeztetések letiltása.