2010-08-24 57 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

相关问题