Megosztás a következőn keresztül:


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.

Lásd még