下面是我的代码示例。
<p>Last Performed: @piece.LastPerformed</p>
<p>Last Performed: @(piece.LastPerformed is null ? "unknown" : @piece.LastPerformed.ToString("MM/dd/yyyy"))</p>
第一行产生";最后执行时间:2022年9月12日晚上9:19:20";。
第二行是我试图格式化日期的内容,但如果它保持为未注释的状态,则会产生错误,所以通常我会将其注释掉,直到我能够正确处理代码为止。
感谢您的帮助!
更好的选择是使用null条件和null合并运算符:
<p>Last Performed: @(piece.LastPerformed?.ToString("MM/dd/yyyy") ?? "unknown")</p>
DateTime?
是Nullable<DateTime>
的简写。如果null条件运算符不是null,则可以使用它来调用实际类型的成员,否则返回null。这相当于:
piece.LastPerformed == null) ? null : piece.LastPerformed.Value.ToString(...);
null合并运算符返回第一个非null参数。它相当于:
(arg ==null)?replacement:arg
LastPerformed
可以为null,因此需要使用Value
属性来获取DateTime
值:
<p>Last Performed: @(piece.LastPerformed is null ? "unknown" : @piece.LastPerformed.Value.ToString("MM/dd/yyyy"))</p>
C#可空值类型的文档