处理null /空字符串

时间:2013-03-17 17:16:31

标签: .net null string

在.NET 4发布之前,我们一直在做这样的事情来检查null /空字符串:

String s;
if ((s + "").Trim().Length == 0)
{
    //do something
}

虽然上面的方法对我们来说效果很好,但我知道在.NET 4中,我们有一个IsNullOrWhiteSpace方法来做类似的事情。

我的问题是,哪一个更好?我们应该切换到使用内置函数吗?

3 个答案:

答案 0 :(得分:4)

在.NET 4上,我肯定会使用内置方法。毕竟,它说完全你想要做什么。

如果您在.NET 4之前遇到困难,为什么不使用:

if (s == null || s.Trim() == "")

或者

if (s == null || s.Trim().Length == 0)

?这两个人都说你想要实现的目标。

我肯定不会在这里使用字符串连接。除了性能之外,你对字符串连接不感兴趣。每当你发现你的代码做的事情实际上并不是你想要实现的目标的一部分时,你应该尝试改进它以便于阅读。

答案 1 :(得分:2)

我个人使用IsNullOrWhiteSpace,主要是因为使用它会使代码更清晰,并处理更多案例(WhiteSpace部分)。这取决于你的偏好,因为两种方法都做同样的事情。

答案 2 :(得分:2)

为什么不编写一个帮助器方法来实现.NET 4之前的IsNullOrWhiteSpace?就像

public static boolean IsNullOrWhiteSpace(string input)
{
    return string.IsNullOrEmpty(input) || input.Trim() == string.Empty;
}

不要像乔恩所说的那样在这里使用连接。检查null / empty不是一个好习惯。