【发布时间】:2015-12-28 08:48:05
【问题描述】:
var OverDate = new ObjectParameter("OverDate",(DateTime)DateTime.Now);
DateTime? convertedDate = (DateTime?) OverDate.Value;
当我提供convertedDate 作为DateTime? 类型的输入参数时,它能够构建但抛出运行时异常
当我得到以下异常时,我可以知道转换的哪一部分是错误的
无法转换类型为“System.Data.Objects.ObjectParameter”的对象 输入“System.IConvertible”
【问题讨论】:
-
您的代码工作正常(.net 4.5)
-
当我提供
convertedDate作为DateTime?类型的输入参数时,它能够构建但抛出运行时异常 -
也许你应该检查
Nullable<DateTime>? -
不,我的意思是它确实有效。 img.leprosorium.com/2480316
-
var cast = (IConvertible)OverDate.Value也适用于上述情况。所以这个问题无法重现问题。我们既可以将框从object向下转换为IConvertible,也可以将其拆箱为DateTime,也可以在拆箱后包装为DateTime?。一定是(A)您在ObjectParameter上忘记了.Value,或者(B)您将一个ObjectParameter包裹在另一个ObjectParameter中。