【发布时间】:2021-04-08 17:15:07
【问题描述】:
在以下示例中,我使用 default value 返回一个 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<DateTimeOffset>,但我不太确定为什么?
【问题讨论】: