可能重复:
Type result with conditional operator in C#设置日期时间问题?为null使用三元操作
我只是工作的一个弹出修改用户,当我遇到了以下问题,而试图修改用户的死亡日期:
在这种情况下,用户的属性Death
是DateTime?
(可空日期时间)。
user.Death = (model.Death != null) ? DateTime.Parse(model.Death) : null;
所以我想,如果包含在模型中的价值,我将能够简单地检查(model.Death是string
)包含的值,我想那个数值的日期,否则我会设置如上所示,为空。
但是,我无法使用这种语法,因为它不允许我使用三元运算符将user.Death
明确设置为空,尽管user.Death = null
工作得很好。
解决方案应用于:
替换: null
与: new Nullable<DateTime>()
我想我只是想知道,为什么我不能明确地设置可空DateTime的财产使用三元运算符为空?
常见问题,请查看上面的链接。简短版本:DateTime和null不能相互转换,因此无法确定表达式的返回类型。将一个或两个投射到所需的返回类型是您需要执行的操作,或者(如您所找到的)在表达式中提供另一种类型以允许一个可以转换为另一个类型。 – 2011-01-25 18:53:39