String.IsNullOrEmpty()

时间:2012-08-09 02:07:46

标签: .net vb.net .net-3.5

最近我注意到,当我们在.NET代码中进行字符串比较时,我们一直在防范空引用。在VB.NET中这个检查似乎是不必要的,因为它重载了相等运算符并为我们执行了这个空引用检查。你们都同意吗?

见下面的例子:

        Dim myStringVariable As String

        ' Unnecessary in VB.NET
        If myStringVariable Is Nothing OrElse myStringVariable = "" Then
        End If

        ' Unnecessary in VB.NET
        If String.IsNullOrEmpty(myStringVariable) Then
        End If

        ' This will work
        If myStringVariable = "" Then
        End If

        ' Also acceptable if you don't like using hard coded constants
        If myStringVariable = String.Empty Then
        End If

3 个答案:

答案 0 :(得分:3)

特别是对于平等测试,你可能是对的。但是,相等测试并不是您使用字符串的唯一方法。

我没有做太多VB.Net,但我强烈怀疑

myStringVariable.Length
如果myStringVariable为null,那么

会爆炸,呃......没什么。

答案 1 :(得分:3)

从来没有必要明确你正在做什么。如果正在处理您的代码的人读取String.IsNullOrEmpty,则他们知道您的意思是处理null并以相同的方式清空。

如果正在处理您的代码的人读取myStringVariable = String.Empty,他们不得不怀疑您是否打算以相同的方式处理空值和清空,或者如果您进行了疏忽。

答案 2 :(得分:0)

你是对的,结合所有这些检查是多余的。

为什么不简单地简化它:

If String.IsNullOrEmpty(myStringVariable) Then
    ' do whatever
End If