在 .NET 4 出来之前,我们一直在做这样的事情来检查 null / 空字符串:
String s;
if ((s + "").Trim().Length == 0)
{
//do something
}
虽然上述方法对我们来说效果很好,但我知道在 .NET 4 中,我们有一种IsNullOrWhiteSpace
方法可以做类似的事情。
我的问题是,哪个更好?我们应该改用内置函数吗?
在 .NET 4 上,我肯定会使用内置方法。毕竟,它准确地说明了你想要做什么。
如果您在 .NET 4 之前遇到困难,为什么不使用:
if (s == null || s.Trim() == "")
或者
if (s == null || s.Trim().Length == 0)
? 两者都说明了您想要实现的目标。
我绝对不会在这里使用字符串连接。抛开性能不谈,您对字符串连接不感兴趣。每当你发现你的代码做的事情实际上不是你想要实现的一部分时,你应该为了可读性而尝试改进它。
我个人使用IsNullOrWhiteSpace
,主要是因为使用它可以使代码更清晰易读并且可以处理更多案例(WhiteSpace
部分)。这取决于您的偏好,因为这两种方法的作用几乎相同。
为什么不编写一个辅助方法来实现IsNullOrWhiteSpace
.NET 4 之前的功能?就像
public static boolean IsNullOrWhiteSpace(string input)
{
return string.IsNullOrEmpty(input) || input.Trim() == string.Empty;
}
不要像乔恩所说的那样在这里使用连接。检查空/空不是一个好习惯。