2014-04-03 39 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

相关问题