如果它有值,我应该如何使用可空类型

How should I use the nullable type if it has a value

我有我的模特:

[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")

我不知道如何或为什么输入相同但 Date2Date3 returns 错误值...

感谢您的帮助

您可以按如下方式使用可空类型。

model.Date1.HasValue ? model.Date1.Value.ToShortDateString() : "Unknown";

您还可以通过 model.Date1.GetValueOrDefault() != default(DateTime)default 日期时间值进行比较。

GetValueOrDefault 将 return default 值如果 Date1null.

model.Date1.GetValueOrDefault() != default(DateTime) ? model.Date1.Value.ToShortDateString() : "Unknown";