コード検査: String.CompareTo は文化固有のものです
このインスペクションは、文字列変換で明示的にカルチャを指定すると同様に、異なるカルチャ設定のマシンでコードを実行する際の問題を回避できます。
String.CompareTo を使用して文字列を比較する場合、比較結果はマシンのロケールに応じて異なる場合があります。標準的な例はトルコ語で、小文字のドットなしの「ı」とそれに対応する大文字の「I」があり、小文字の「i」とドット付きの大文字の「İ」があります。その結果、以下のメソッドは、異なるカルチャ設定のマシンで異なる結果を返す可能性があります。
この問題を解決するために、ReSharper は、メソッド呼び出しに明示的に文化不変 StringComparison.Ordinal を追加することを提案します。
関連ページ:
コードインスペクション設定を構成する
設計時コードインスペクションを構成する:デフォルトでは、ReSharper は、サポートされている言語に対応するすべてのファイルで設計時コードインスペクションを有効にします。必要に応じて、無効にすることができます。設計時コードインスペクションが有効かどうかに関係なく、コードインスペクションは常に特定のスコープで実行できます。メインメニューからを選択するか、Alt+R O を押してから、左側のを選択します。設計時コードインスペクションを切り替えるには、コード分析を有効にするチェックボックスを使用し...
コード検査: 明示的に文字列を指定する
データ構造のテキストへのアドホック変換は、現在のカルチャに大きく依存しており、ロケールが元の開発者と異なるマシンでコードを実行すると、意図しない結果につながる可能性があります。あいまいさを防ぐため、ReSharper は、このような問題が発生する可能性のあるコードのインスタンスを警告します。例: 次のコードを取る void Test(float foo) { Console.WriteLine(foo.ToString()); ; } はカルチャに依存しないと思われるかもしれませんが、実際にはそうで...