c# - 如果它有一个值,我应该如何使用可空类型
问题描述
我有我的模型:
[DataType(DataType.Date)]
public DateTime? Date1 { get; set; }
[DataType(DataType.Date)]
public DateTime? Date2 { get; set; }
[DataType(DataType.Date)]
public DateTime? Date3 { get; set; }
重要的是 Data1 到 Data3 是DateTime?
我的问题:
//Return right value
(model.Date1.ToString().AsDateTime().ToShortDateString() != "01.01.0001" ? model.Date1.ToString().AsDateTime().ToShortDateString() : "Is not known")
//Return bad value
(model.Date2.ToString().AsDateTime().ToShortDateString() != "01.01.0001" ? model.Date1.ToString().AsDateTime().ToShortDateString() : "Není známo")
//Return bad value
(model.Date3.ToString().AsDateTime().ToShortDateString() != "01.01.0001" ? model.Date3.ToString().AsDateTime().ToShortDateString() : "Is not known")
我不知道如何或为什么,但输入是相同的,但Date2
返回Date3
错误的价值......
谢谢你的帮助
解决方案
您可以按如下方式使用可为空的类型。
model.Date1.HasValue ? model.Date1.Value.ToShortDateString() : "Unknown";
推荐阅读
- java - 如何在 selenium webdriver (java) 中生成报告?
- android - android 可编辑 Baseurl 改造
- python - 如何将已生成的 XML 字符串附加到使用 minidom 生成的 XML 中?
- python - 如何以更好的优化方式计算 cross_val_score() 的平均值?
- ruby-on-rails - Rails:在不渲染页面的情况下发送 401 错误
- vaadin - 如何创建没有 POJO(动态列)的网格?
- typescript - 如何模拟cheerio.load().toArray().slice();
- c# - 如何在 WPF 中正确实现 VirtualizingWrapPanel
- javascript - 获取购物车产品的总价
- c++ - 警告:返回的与局部变量“x”相关的堆栈内存地址 [-Wreturn-stack-address]