首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >String.IsNullOrEmpty()

String.IsNullOrEmpty()
EN

Stack Overflow用户
提问于 2012-08-09 10:07:46
回答 3查看 876关注 0票数 0

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

请参见下面的示例:

代码语言:javascript
复制
        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
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-09 10:10:41

具体来说,对于相等性测试,你可能是对的。然而,相等性测试并不是您对字符串所做的唯一事情。

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

代码语言:javascript
复制
myStringVariable.Length

如果myStringVariable为空的话就会爆炸,呃...没什么。

票数 3
EN

Stack Overflow用户

发布于 2012-08-09 10:11:03

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

如果正在处理您的代码的人阅读了myStringVariable = String.Empty,他们就会想知道您是否打算以同样的方式处理null和empties,或者您是否疏忽了。

票数 3
EN

Stack Overflow用户

发布于 2012-08-09 10:10:25

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

为什么不把它简化为:

代码语言:javascript
复制
If String.IsNullOrEmpty(myStringVariable) Then
    ' do whatever
End If
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11875812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档