我在VB.net中遇到了无法预测的无效预测效果.有问题的对象定义了一个属性: Public Property Value As Int32? 当我尝试使用IIf合并该值时,我得到一个null异常 cmd.Parameters.AddWithValue("@HOValue", IIf(
Public Property Value As Int32?
当我尝试使用IIf合并该值时,我得到一个null异常
cmd.Parameters.AddWithValue("@HOValue", IIf(headOffice.Value.HasValue, headOffice.Value .Value, DBNull.Value))
在C#中,我知道没有隐式转换为nullables,因此你不能使用??,但为什么在VB.NET中评估IIf的第一部分?
Iff是一个函数,即它的参数在执行之前被计算.当headOffice.Value为null时,则无法在此处评估headOffice.Value.Value.