2014-04-03 38 views
1

我在VB.NET下面的代碼:可爲空的對象必須有一個值。在VB.NET

Public Sub Test(ByRef clientId As Nullable(Of Integer)) 
    Dim t As Object = IIf(clientId.HasValue, clientId.Value, DBNull.Value) 
End Sub 

主叫側傳中NothingclientId價值,但是當我運行這個說法我有例外。

可空對象必須有一個值

是我的發言錯了嗎?

回答

5

更改爲使用「如果」:

Dim t As Object = If(clientId.HasValue, clientId.Value, DBNull.Value) 

與「I如果」的問題是,它只是一個函數調用 - 所有的參數一直被運用,而VB「如果」操作行爲就像「 ?運算符在C#/ Java中 - 它只評估它需要評估什麼。

+0

哎唷,我的錯。我正在考慮'null'並使用'Iif',然後混合了'.HasValue'。 – hardywang

相關問題