Dan*_*man 8 .net c# nullable conditional-operator
这将无法编译,说明"无法确定条件表达式的类型,因为'System.DateTime'和''"之间没有隐式转换
task.ActualEndDate = TextBoxActualEndDate.Text != "" ? DateTime.Parse(TextBoxActualEndDate.Text) : null;
Run Code Online (Sandbox Code Playgroud)
这很好用
if (TextBoxActualEndDate.Text != "")
task.ActualEndDate = DateTime.Parse(TextBoxActualEndDate.Text);
else
task.ActualEndDate = null;
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为编译器不会立即在两端插入隐式转换,并且null需要隐式转换才能成为可空类型.
相反,你可以写
task.ActualEndDate = TextBoxActualEndDate.Text != "" ?
DateTime.Parse(TextBoxActualEndDate.Text) : new DateTime?();
Run Code Online (Sandbox Code Playgroud)
这只需要一次隐式转换(DateTimeto DateTime?).
或者,您可以投射左侧:
task.ActualEndDate = TextBoxActualEndDate.Text != "" ?
(DateTime?)DateTime.Parse(TextBoxActualEndDate.Text) : null;
Run Code Online (Sandbox Code Playgroud)
这也只需要一次隐式转换.
| 归档时间: |
|
| 查看次数: |
4140 次 |
| 最近记录: |