有没有比从 DateTime 转换更简单的方法? -> 字符串 -> 日期时间 -> 字符串?
DateTime? timeReceived;
String dateReceived = timeReceived == null ? "" : DateTime.Parse(timeReceived.ToString()).Date.ToString();
您可以使用 null 安全运算符 ?。例如timeReceived?.Date.ToString()
.?.
如果参数null
则使表达式短路并返回null
。
要将null
替换为空字符串,您可以使用空合并运算符??,例如somethingNullable ?? ""
。把所有的东西放在一起:
String dateReceived = timeReceived?.Date.ToString() ?? "";
您还可以使用?[]
访问可为 null 的数组的元素,并??=
仅在变量包含null
时才设置变量。这两个运算符可以简化代码,但很容易忘记它们。我一直在重新发现这些
您可以将?
运算符与??
(null合并运算符)一起使用。 如果与之一起使用的变量为 null,则运算符?
返回 null(与缺少此运算符相反,这将引发 null 引用异常)。我认为您应该使用string.Empty
来重用预定义的空字符串并明确说明您想要的内容。这是完整示例
string dateStr = timeReceived?.Date.ToString() ?? string.Empty;
您可能还想使用方便的方法ToShortDateString
:
string dateStr = timeReceived?.Date.ToShortDateString() ?? string.Empty;