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ó | 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.