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 を使用します