具有变量本身的空合并运算符
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;
当我们检查的变量是我们要分配的变量(如果它不为空)时,是否有任何方法可以减少空合并运算符表达式?
示例:
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;