2013-03-14 33 views
2

我有以下一小段代碼永遠不會返回字符串「selected」。string.empty和isNullOrEmpty之間的區別?

Protected Function SelectedType(ByVal val As String) As String 
    If val <> String.Empty Then Return "selected" 
End Function 

但是,如果我改變它,它的工作原理。上面的簡寫代碼有什麼不對嗎? -Thanks

Protected Function SelectedType(ByVal val As String) As String 
    If Not String.IsNullOrEmpty(val) Then 
     Return "selected" 
    End If 
End Function 

回答

3

String.Empty"",空是Nothing

如果該值等於String.Empty或者如果你可以比較一個字符串是否爲空,如果是空的,或兩者同時使用IsNullOrEmpty()

+1

這是VB.Net - 沒有'null' ... – 2013-03-14 15:47:21

+1

我的意思'Nothing'。修復 – 2013-03-14 15:49:48

+1

'或兩者'是不可能的。但你在正確的軌道上:-) – Jehof 2013-03-14 15:56:03

1

IsNullOrEmpty提供了額外的安全性對空值,另有您的代碼將無法

3

當你調用If Not String.IsNullOrEmpty(val) Then,你檢查,看看值等於Nothing

這將是更喜歡寫你的第一個例子是:

Protected Function SelectedType(ByVal val As String) As String 
    If val <> Nothing And val <> String.Empty Then 
     Return "selected" 
    End If 
End Function