可能重复:
Is there an “opposite” to the null coalescing operator? (…in any language?)
在这里写第三行是否有更简洁的方法?
int? i = GetSomeNullableInt();
int? j = GetAnother();
int k = i == null ? i : j;
我知道null合并运算符,但我正在寻找的行为与此相反:
int k == i ?? j;
答案 0 :(得分:1)
在C#中,您拥有的代码是编写所需内容的最简洁方式。
答案 1 :(得分:1)
偷偷摸摸 - 你在我回复时编辑了它。 :)
我不相信有更简洁的写作方式。但是,我会使用“HasValue”属性,而不是== null。更容易看到你的意图。
int? k = !i.HasValue ? i : j;
(BTW-k也必须是可以为空的。)
答案 2 :(得分:1)
该运营商有什么意义?用例非常有限。如果您正在寻找单线解决方案而不必使用临时变量,那么首先不需要它。
int k = GetSomeNullableInt() == null ? null : GetAnother();