2010-08-24 58 views

回答

10

當然,如果你是爲慢的代碼是很難閱讀:)

你真的想用string.IsNullOrWhitespace雖然拍攝。在這種方法存在之前,誰寫了這些代碼可能會這樣做。但即使如此,在這種情況下,我更喜歡myString.Trim().Length == 0

+5

'string.IsNullOrWhitespace'與.NET介紹4.0,所以舊版本只能使用'string.IsNullOrEmpty'。 – Oded 2010-08-24 16:33:08

+0

謝謝Oded,我忘了它是新的。我編輯了我的答案以反映這一點。 – 2010-08-24 16:34:22

+0

+1,輕微抱怨。我寧願只是手動編寫IsNullOrWhitespace而不是分配代碼。該方法相當直接地進行編碼。 – JaredPar 2010-08-24 16:38:52

2

你給的方法不處理空值,而String.IsNullOrEmpty

這會告訴我,通過你的方法一個空值是一個錯誤情況,這是從String.IsNullOrEmpty不同的行爲。

另外,正如其他人指出的,您的方法將返回爲isStringOnlyWhitespace(" "),而String.IsNullOrEmpty(" ")將返回false。

1

是的。只包含空格的字符串不被認爲是空的。 isStringOnlyWhitespace(" ")返回true,但string.IsNullOrEmpty(" ")返回false。

1

無;)

一)我想既然.NET 4,你可以使用string.IsNullOrWhitespace

B)嘗試像

public static bool IsStringOnlyWhitespace(this string str) 
{ 
    // if you want to check for null: 
    return str == null || string.IsNullOrEmpty(str.Trim()); 
    // else 
    return string.IsNullOrEmpty(string.Trim()); 
} 
+0

你的意思是str.Trim()?即使你這樣做,它不處理像IsNullOrEmpty – recursive 2010-08-24 16:36:16

+0

的空值更正了代碼,感謝命中。 我提出的方法要麼處理null或不處理null,這取決於您選擇的語句。 – Zebi 2010-08-25 19:35:32

相關問題