這是否有意義? MyValue可以是「true」或「false」Stringcomparison OrdinalIgnoreCase爲真的假值
它應該不是Stringcomparison.OrdinalIgnoreCase?
MyValue.Equals("true", StringComparison.CurrentCultureIgnoreCase))
這是否有意義? MyValue可以是「true」或「false」Stringcomparison OrdinalIgnoreCase爲真的假值
它應該不是Stringcomparison.OrdinalIgnoreCase?
MyValue.Equals("true", StringComparison.CurrentCultureIgnoreCase))
這真的取決於你的情況以及你的程序的其餘部分是如何製作的。從上OrdinalCompareCase
該文檔由OrdinalIgnoreCase屬性返回的StringComparer對待字符串中的字符進行比較,就好像它們被轉換使用不變區域性的約定爲大寫,然後執行一個簡單的字節比較即獨立於語言。比較以編程方式生成的字符串或比較不區分大小寫的資源(如路徑和文件名)時,這是最合適的。
所以基本上,如果值是文化獨立(progamatically產生等)使用OrdinalIgnoreCase
Bool.Parse
我不會那麼做的。僅僅因爲字符串不等於"true"
並不意味着它等於"false"
。這是一個簡單的方法,讓醜陋的錯誤滑。我想你應該解析字符串
bool value;
if(!Boolean.TryParse(MyValue, out value)) {
// it did not parse
}
// it parsed
這更可能是正確的,這是更具可讀性。另外,文化問題已經席捲了地毯。
'MyValue.ToLower()等於( 「真」)' – 2012-03-30 12:58:47
@AmenAyach:這是不正確的。 「ToLower」是依賴於文化的,因此不應該用於* not * culture-dependent的比較。像這樣的事情可能會導致很難在本地化應用程序中發現錯誤。 – 2012-03-30 12:59:37