c# - 仅当它具有非空值时,如何将可为空的日期时间转换为日期时间
问题描述
我有这两行代码:
result.birthdateSpecified = (someData.BirthDate != null || false);
result.birthdate = someData.BirthDate as DateTime;
我希望能够在一行中将 result.birthdate 设置为 someDate.BirthDate,前提是它存在。这样我就不必写任何 if 语句。只是想知道这是否可能?
仅供参考 - result.birthDate 是 DateTime 而 someData.BirthDate 是 DateTime?(可以为空)
我知道我不能用 'as' 投射它,但不确定是否还有其他东西可以使用?
解决方案
空合并运算符呢?
result.birthdate = someData.BirthDate ?? result.birthdate;
当然,分配将无条件完成,因此将调用 setter,并且可能会调用 getter...这可能是您不想要的东西...但只有在 someData.BirthDate 不是时值才会改变无效的
推荐阅读
- php - 转换为多站点后,域添加到 wp-admin 中的资源路径
- c - 使用 toupper 和 tolow 函数切换字符串
- javascript - 为什么 eval 向我发出以下错误信号:Uncaught SyntaxError: Invalid or unexpected token at HTMLButtonElement。
(index.js: 11) - r - 将时间从文本转换为数字 R
- bazel - 如何在 Skylark Bazel 中通过测试参数?
- amazon-web-services - 红移真空无影响
- c - typedef struct 导致“不允许指向不完整类型的指针”错误
- typescript - Visual Studio 2019 如何发现 TypeScript 定义文件?
- animation - 如何将 Figma 中的动画导出为 Lottie 格式?
- flutter - 将变量名作为函数参数传递