在下面的示例中,我正在使用
为什么三元运算符和if语句返回的结果不同?
我猜是三元运算符先强制类型转换为DateTimeOffset,然后内联转换回Nullable,但我不太确定为什么会这样。
default
值返回一个DateTimeOffset?
。var a = ConvertToDateTimeOffsetA(null); // 1/1/0001 12:00:00 AM +00:00
var b = ConvertToDateTimeOffsetB(null); // null
private static DateTimeOffset? ConvertToDateTimeOffsetA(DateTime? date)
{
return date != null
? new DateTimeOffset(date.Value, TimeSpan.Zero)
: default;
}
private static DateTimeOffset? ConvertToDateTimeOffsetB(DateTime? date)
{
if (date != null)
return new DateTimeOffset(date.Value, TimeSpan.Zero);
return default;
}
为什么三元运算符和if语句返回的结果不同?
我猜是三元运算符先强制类型转换为DateTimeOffset,然后内联转换回Nullable,但我不太确定为什么会这样。