写一个零合并的相反方法最简洁的方法是什么

时间:2011-09-12 18:48:56

标签: c# null-coalescing-operator

  

可能重复:
  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;

3 个答案:

答案 0 :(得分:1)

在C#中,您拥有的代码是编写所需内容的最简洁方式。

答案 1 :(得分:1)

偷偷摸摸 - 你在我回复时编辑了它。 :)

我不相信有更简洁的写作方式。但是,我会使用“HasValue”属性,而不是== null。更容易看到你的意图。

int? k = !i.HasValue ? i : j; 

(BTW-k也必须是可以为空的。)

答案 2 :(得分:1)

该运营商有什么意义?用例非常有限。如果您正在寻找单线解决方案而不必使用临时变量,那么首先不需要它。

int k = GetSomeNullableInt() == null ? null : GetAnother();