为什么出现此Conditional运算符错误

本文关键字:运算符 错误 Conditional 为什么 | 更新日期: 2023-09-27 17:55:06

可能重复:
具有Nullable<的条件运算符赋值;值>类型?

嗨,为什么这不起作用?

  DateTime? SomeNullableDateTime = string.IsNullOrEmpty("") ? null : Convert.ToDateTime("01/02/1982");  

这是什么地方的错误吗?问题似乎是无效的,因为

  DateTime? SomeNullableDateTime = string.IsNullOrEmpty("") ? Convert.ToDateTime("01/02/1982") : Convert.ToDateTime("01/02/1982"); 

工作正常。。

感谢

为什么出现此Conditional运算符错误

两个条件值都需要是相同的类型,或者允许从一种类型隐式转换为另一种类型,如下所示:

DateTime? SomeNullableDateTime = string.IsNullOrEmpty("") ? (DateTime?)null : Convert.ToDateTime("01/02/1982");

更多信息可以在这里找到,但要总结:

first_expression的类型和second_expression必须是相同,或者必须进行隐式转换从一种类型存在到另一种类型。

因为nullConvert.ToDateTime不是同一类型。

你可以使用这个:

DateTime? SomeNullableDateTime = string.IsNullOrEmpty("") ? (DateTime?)null : new DateTime?(Convert.ToDateTime("01/02/1982"));