5

これは意味がありますか?MyValueは「true」または「false」にすることができます

Stringcomparison.OrdinalIgnoreCaseではありませんか?

MyValue.Equals("true", StringComparison.CurrentCultureIgnoreCase))
4

3 に答える 3

4

私はそれをしません。文字列が と等しくないからといって、 と等しいと"true"は限りません"false"。これは、醜いバグが入り込む簡単な方法です。文字列を解析する必要があると思います

bool value;
if(!Boolean.TryParse(MyValue, out value)) {
    // it did not parse
}
// it parsed

これは正しい可能性が高く、読みやすくなっています。さらに、文化の問題は敷物の下に一掃されました.

于 2012-03-30T13:00:02.683 に答える
2

それは実際の状況と、プログラムの残りの部分がどのように作成されているかによって異なります。OrdinalCompareCaseのドキュメントから

OrdinalIgnoreCase プロパティによって返される StringComparer は、文字列内の文字を、インバリアント カルチャの規則を使用して大文字に変換されたかのように処理し、言語に依存しない単純なバイト比較を実行します。これは、プログラムによって生成された文字列を比較する場合、またはパスやファイル名などの大文字と小文字を区別しないリソースを比較する場合に最も適しています。

したがって、基本的に、値が文化に依存しない(プログラム的に生成されるなど)場合は、使用しますOrdinalIgnoreCase

于 2012-03-30T13:00:20.150 に答える
2
Bool.Parse

私には良く見えます。

于 2012-03-30T12:59:55.773 に答える