更新 : 2007 年 11 月
TypeName |
SpecifyStringComparison |
CheckId |
CA1307 |
カテゴリ |
Microsoft.Globalization |
互換性に影響する変更点 |
なし |
原因
文字列比較演算で、StringComparison パラメータを設定しないメソッド オーバーロードが使用されています。
規則の説明
多くの文字列演算 (最も重要なものは Compare メソッドおよび Equals メソッド) では、StringComparison 列挙体をパラメータとして受け取るオーバーロードが用意されています。
StringComparison パラメータを受け取るオーバーロードが存在する場合は、このパラメータを受け取らないオーバーロードではなく、受け取るオーバーロードを使用する必要があります。このパラメータを明示的に設定すると、多くの場合、コードがわかりやすくなり、保守も簡単になります。
違反の修正方法
この規則違反を修正するには、文字列比較メソッドを、StringComparison 列挙体をパラメータとして受け取るオーバーロードに変更します。たとえば、String.Compare(str1, str2) を String.Compare(str1, str2, StringComparison.Ordinal) に変更します。
警告を抑制する状況
ライブラリまたはアプリケーションが、限定されたローカル ユーザーを対象にしているためにローカライズされない場合は、この規則による警告を抑制しても安全です。