最近我注意到,当我们在.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发布于 2012-08-09 10:10:41
具体来说,对于相等性测试,你可能是对的。然而,相等性测试并不是您对字符串所做的唯一事情。
我没有做过太多的VB.Net,但我强烈怀疑
myStringVariable.Length如果myStringVariable为空的话就会爆炸,呃...没什么。
发布于 2012-08-09 10:11:03
没有必要明确地说明你在做什么。如果正在处理您的代码的人阅读了String.IsNullOrEmpty,他们知道您的意思是以同样的方式对待null和empty。
如果正在处理您的代码的人阅读了myStringVariable = String.Empty,他们就会想知道您是否打算以同样的方式处理null和empties,或者您是否疏忽了。
发布于 2012-08-09 10:10:25
你说得对,合并所有这些检查是多余的。
为什么不把它简化为:
If String.IsNullOrEmpty(myStringVariable) Then
' do whatever
End Ifhttps://stackoverflow.com/questions/11875812
复制相似问题