我正在尝试学习使用 null 条件运算符,但似乎无法让它工作,

string datetest = DOInfolist[i].RentalItem.SimCard.DateIn[u].Value.ToShortDateString() ?? "Empty";
DateIn 是可空的 DateTime ( List<Datetime?> ) 列表。

我进行了调试,DateIn[u] 中的所有值都为 null。

我究竟做错了什么?

最佳答案

如果 DateIn 数组中的所有值都是 null ,则您的代码将抛出 NullReferenceException

您可以在此处使用 null-propagation-operator:

string datetest = DOInfolist[i].RentalItem.SimCard.DateIn[u]?.ToShortDateString() ?? "Empty";

此运算符 ( ?. ) 现在返回一个可为空的字符串。如果 DateIn[u] 有值,则调用 ToShortDateString() 并且运算符返回一个带有返回值的可为空的字符串。
如果 DateIn[u]null 运算符也返回 null

关于具有可为空日期时间的 C# 空条件运算符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42507665/

10-09 22:05