具有变量本身的空合并运算符

Null coalescing operator with the variable itself

当我们检查的变量是我们要分配的变量(如果它不为空)时,是否有任何方法可以减少空合并运算符表达式?

示例:

DateTime? date1 = DateTime.Parse("11/05/1990");
DateTime? date2 = DateTime.Now;
date1 = date1 ?? date2;

例如,类似这样的东西:

date1 = ?? date2;

我知道这没什么大不了的,但我很好奇。

不,这在 C# 中不存在。

您可以在 https://msdn.microsoft.com/nl-nl/library/6a71f45d.aspx 中找到运算符列表。

但是 date1 = date1 ?? date2 还不够短吗?

没有。如果当时有:

_field ?? (_field = CalculateFieldValue());

在记忆属性中不会那么常见。

C# 8.0 开始,空合并赋值运算符 ??= 可用。

所以会是

date1 ??= date2;