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 romboló vagy nem romboló Nem törhető
Alapértelmezés szerint engedélyezve a .NET 10-ben Nem
Alkalmazandó nyelvek C# és Visual Basic

Ok

A sztring-összehasonlító művelet olyan metódustúlterhelést használ, amely nem állít be egy StringComparison paramétert.

Szabály leírása

Számos sztring-összehasonlítási művelet rendelkezik olyan túlterheléssel, amely paraméterként enumerációs értéket fogad el.

Amikor létezik olyan túlterhelés, amely StringComparison paramétert használ, akkor azt kell használni a helyett, amelyik nem használja ezt a paramétert. 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 megadása explicit módon.

Megjegyzé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ódok szabálysértéseit akarja megtekinteni, használja a CA1310: Adja meg a StringComparison-t a helyesség érdekében.

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