CA1309:使用循序的 StringComparison

型別名稱

UseOrdinalStringComparison

CheckId

CA1309

分類

Microsoft.Globalization

中斷變更

中斷

原因

非語言的字串比較作業未將 StringComparison 參數設定為 OrdinalOrdinalIgnoreCase

規則描述

許多字串作業 (最重要的是 StringCompare() 和 StringEquals() 方法) 現在都提供接受 StringComparision 列舉值做為參數的多載。

當您指定 StringComparison.OrdinalStringComparison.OrdinalIgnoreCase 時,字串比較將是非語言性質。 也就是說,在決定比較結果時,會忽略自然語言專有的功能。 這表示結果是根據比較簡單的位元組而決定,並忽略依照文化特性所參數化之大小寫或對等的表格。 因此,藉由明確地將參數設定為 StringComparison.OrdinalStringComparison.OrdinalIgnoreCase,您的程式碼通常會在速度和正確性方面獲得提升,並且更加可靠。

如何修正違規

若要修正這個規則的違規情形,請將字串比較方法變更為接受 System.StringComparison 列舉做為參數的多載,並指定 OrdinalOrdinalIgnoreCase。 例如,將 String.Compare(str1, str2) 變更為 String.Compare(str1, str2, StringComparison.Ordinal)。

隱藏警告的時機

當程式庫或應用程式適用於有限制的地區設定使用者,或者應使用目前文化特性的語意時,您可以放心地隱藏此規則的警告。

請參閱

參考

CA1307:指定 StringComparison

其他資源

全球化警告