string.empty和isNullOrEmpty之间的区别是什么?

3
我有如下一小段代码,但它从未返回字符串“selected”。
Protected Function SelectedType(ByVal val As String) As String
    If val <> String.Empty Then Return "selected"
End Function

然而,如果我将其更改为这样,它就可以工作。我的上面的速记代码有什么问题吗?-谢谢
Protected Function SelectedType(ByVal val As String) As String
    If Not String.IsNullOrEmpty(val) Then
        Return "selected"
    End If
End Function
3个回答

4

String.Empty"",null 是 Nothing

您可以使用 IsNullOrEmpty() 来比较字符串是否为 null、空或同时为空。


如果val不是空或null,则返回"selected"。 - SkyeBoniwell
顺便说一句,我正在尝试将其保持在单行上。 - SkyeBoniwell
1
是的,没错。val 可能是 Nothing,这就是为什么第一段代码从未返回“selected”的原因。 - Stephane Delcroix

3
当你调用If Not String.IsNullOrEmpty(val) Then时,你正在检查该值是否等于String.Empty或者等于Nothing
这更像是将你的第一个示例写成:
Protected Function SelectedType(ByVal val As String) As String
    If val <> Nothing And val <> String.Empty Then 
        Return "selected"
    End If
End Function

1

IsNullOrEmpty提供了对空值的额外安全保障,否则您的代码将会失败。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接