Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
| 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.