可能重复:
在C#中使用条件运算符键入结果
当我在尝试修改用户的死亡日期时遇到以下问题时,我正在处理一个用于修改用户的弹出窗口:
在这种情况下,Death用户的属性是DateTime?(可为空的日期时间).
user.Death = (model.Death != null) ? DateTime.Parse(model.Death) : null;
Run Code Online (Sandbox Code Playgroud)
所以我想我能够简单地检查模型中string包含的值(model.Death是否)是否包含值,我将设置日期值,否则我将其设置为null,如上所示.
但是,我无法使用这种语法,因为它不允许我user.Death使用三元运算符显式设置为null,尽管user.Death = null工作得很好.
解决方案:
替换: null为: new Nullable<DateTime>()
我想我只是想知道,为什么我无法使用三元运算符将Nullable DateTime属性显式设置为null?
这不起作用,因为编译器不会立即在两端插入隐式转换.
你想编译器将转换DateTime值DateTime?在一边,而null到DateTime?另一侧.
这不可能发生.
如果你明确地将其中一半转换为DateTime?,则另一半也会隐式转换.
| 归档时间: |
|
| 查看次数: |
3663 次 |
| 最近记录: |