【发布时间】:2017-06-09 08:56:51
【问题描述】:
当我们检查的变量是如果它不为空时我们将分配的变量时,有什么方法可以减少空合并运算符表达式?
例子:
DateTime? date1 = DateTime.Parse("11/05/1990");
DateTime? date2 = DateTime.Now;
date1 = date1 ?? date2;
例如,类似的事情:
date1 = ?? date2;
我知道这没什么大不了的,但我很好奇。
【问题讨论】:
-
你不能。如果您有兴趣,请查看 msdn 的运营商列表msdn.microsoft.com/en-us/library/6a71f45d.aspx
-
是的,我试过了,但出现“表达式除外”错误。
-
已经有人请求
??=运算符或类似的东西。但它不存在。他们花时间和精力去实施它还不够重要。 -
我更喜欢使用 if 语句检查 null 以防止额外分配。
if(date == null) date = date2;。这也不是微优化,只是见仁见智 -
我不知道你为什么选择这个例子,也许你的真实代码会从这样的运算符中受益,但我只是想确保你知道这个例子为什么会误导:两者都 @987654326 @ 和
date2是Nullables,但永远不会是null。
标签: c# conditional-statements null-coalescing-operator