可能重复:
Why does null need an explicit type cast here?
Nullable types and the ternary operator. Why won't this work?
尝试执行以下操作:
sqlCmd.Parameters.Add("@DateCreated", System.Data.SqlDbType.DateTime).Value
= myObject.DateCreated == DateTime.MinValue
? DBNull.Value : myObject.DateCreated;
我收到此错误:
条件表达式的类型不能 确定是因为没有 之间的隐式转换 'System.DBNull'和'System.DateTime'
我很明白这个错误,但是为什么类型甚至是什么,因为Parameters.Value属于object类型?有没有办法完成我想要做的事情?
答案 0 :(得分:3)
返回值进入object
的情况没有区别,因为必须首先确定返回值的类型。
将两个值中的一个(DBNull.Value
,myObject.DateCreated
)投射到另一个的基础上,你会没事的。在这种情况下,基数甚至可以是object
。
答案 1 :(得分:1)