一尘不染

C#中的条件运算符和返回类型

sql

尝试执行以下操作:

sqlCmd.Parameters.Add("@DateCreated", System.Data.SqlDbType.DateTime).Value 
    = myObject.DateCreated == DateTime.MinValue 
    ? DBNull.Value : myObject.DateCreated;

我收到此错误:

无法确定条件表达式的类型,因为“ System.DBNull”和“ System.DateTime”之间没有隐式转换

我显然理解该错误,但是考虑到Parameters.Value是object类型,为什么类型甚至很重要?有没有办法完成我想做的事情?


阅读 238

收藏
2021-03-08

共1个答案

一尘不染

返回值进入的值并没有什么区别object,因为 必须首先确定返回值的类型

这两个值(投一个DBNull.ValuemyObject.DateCreated)其他,你会没事的基础。在这种情况下,基数甚至可以是object

2021-03-08