我正在尝试学习使用 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/