最近我注意到,当我们在.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
答案 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