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


CA1309: Az ordinal StringComparison használata

Tulajdonság Érték
Szabályazonosító CA1309
Cím Az ordinal StringComparison használata
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 nemlinguisztikus karakterlánc-összehasonlító művelet nem állítja be a StringComparison paramétert ordinali vagy OrdinalIgnoreCase értékre.

Szabály leírása

Számos sztringművelet, ami a System.String.CompareSystem.String.Equals legfontosabb, most már túlterhelést biztosít, amely paraméterként fogadja el System.StringComparison az enumerálási értéket.

Ha StringComparison.Ordinal vagy StringComparison.OrdinalIgnoreCase értéket ad meg, a sztringek összehasonlítása nem nyelvi. Vagyis a természetes nyelvre jellemző funkciók figyelmen kívül lesznek hagyva az összehasonlítási döntések meghozatalakor. A természetes nyelvi jellemzők figyelmen kívül hagyása azt jelenti, hogy a döntések egyszerű bájt-összehasonlításokon alapulnak, és nem a kultúra által paraméterezett casing- vagy ekvivalenciatáblákon. Ennek eredményeképpen, ha a paramétert explicit módon a StringComparison.Ordinal vagy StringComparison.OrdinalIgnoreCase értékre állítja, a kód gyakran növeli a sebességet, növeli a helyességet és megbízhatóbbá válik.

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ódust olyan túlterhelésre, amely paraméterként fogadja el az System.StringComparison enumerálást, és adja meg az OrdinalIgnoreCaseértéket. Például váltson a String.Compare(str1, str2) következőre String.Compare(str1, str2, StringComparison.Ordinal): .

Mikor kell letiltani a figyelmeztetéseket?

A szabály figyelmeztetését nyugodtan letilthatja, ha a kódtárat vagy alkalmazást korlátozott helyi közönségnek szánták, vagy amikor a jelenlegi kultúra szemantikáját kell használni.

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 CA1309
// The code that's violating the rule is on this line.
#pragma warning restore CA1309

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.CA1309.severity = none

További információ: Kódelemzési figyelmeztetések letiltása.

Lásd még