【问题标题】:String.IsNullOrEmpty()String.IsNullOrEmpty()
【发布时间】:2012-08-09 02:07:45
【问题描述】:

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

请看下面的例子:

        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

【问题讨论】:

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


    【解决方案1】:

    特别是对于相等性测试,您可能是对的。但是,相等性测试并不是您对字符串所做的唯一事情。

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

    myStringVariable.Length
    

    如果 myStringVariable 为空,就会爆炸,呃……什么都没有。

    【讨论】:

      【解决方案2】:

      没有必要明确说明你在做什么。如果正在处理您的代码的人读到String.IsNullOrEmpty,他们就知道您的意思是用同样的方式处理 null 和 empty。

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

      【讨论】:

        【解决方案3】:

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

        为什么不把它简化成简单的:

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

        【讨论】:

          猜你喜欢
          • 2011-01-25
          • 2020-11-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-11-11
          相关资源
          最近更新 更多