CA1307: StringComparison の指定

TypeName

SpecifyStringComparison

CheckId

CA1307

分類

Microsoft.Globalization

互換性に影響する変更点

なし

原因

文字列比較演算で、StringComparison パラメーターを設定しないメソッド オーバーロードが使用されています。

規則の説明

多くの文字列演算 (最も重要なものは Compare メソッドおよび Equals メソッド) では、StringComparison 列挙体をパラメーターとして受け取るオーバーロードが用意されています。

StringComparison パラメーターを受け取るオーバーロードが存在する場合は、このパラメーターを受け取らないオーバーロードではなく、受け取るオーバーロードを使用する必要があります。 このパラメーターを明示的に設定すると、多くの場合、コードがわかりやすくなり、保守も簡単になります。

違反の修正方法

この規則違反を修正するには、文字列比較メソッドを、StringComparison 列挙体をパラメーターとして受け取るオーバーロードに変更します。 たとえば、String.Compare(str1, str2) を String.Compare(str1, str2, StringComparison.Ordinal) に変更します。

警告を抑制する状況

ライブラリまたはアプリケーションが、限定されたローカル ユーザーを対象にしているためにローカライズされない場合は、この規則による警告を抑制しても安全です。

参照

参照

CA1309: 順序を示す StringComparison を使用します

その他の技術情報

グローバリゼーションの警告