首页 > 解决方案 > 仅当它具有非空值时,如何将可为空的日期时间转换为日期时间

问题描述

我有这两行代码:

result.birthdateSpecified = (someData.BirthDate != null || false);
result.birthdate = someData.BirthDate as DateTime;

我希望能够在一行中将 result.birthdate 设置为 someDate.BirthDate,前提是它存在。这样我就不必写任何 if 语句。只是想知道这是否可能?

仅供参考 - result.birthDate 是 DateTime 而 someData.BirthDate 是 DateTime?(可以为空)

我知道我不能用 'as' 投射它,但不确定是否还有其他东西可以使用?

标签: c#datetimenullable

解决方案


空合并运算符呢?

result.birthdate = someData.BirthDate ?? result.birthdate;

当然,分配将无条件完成,因此将调用 setter,并且可能会调用 getter...这可能是您不想要的东西...但只有在 someData.BirthDate 不是时值才会改变无效的


推荐阅读