最佳答案
空合并大致可以转换为 return x, unless it is null, in which case return y
我经常需要 return null if x is null, otherwise return x.y
我可以用 return x == null ? null : x.y;
不错,但是中间的 null
总是让我感到困扰——它似乎是多余的。我更喜欢类似于 return x :: x.y;
的内容,其中,只有在 ::
之前的内容不是 null
的情况下,才对 ::
之后的内容进行计算。
我认为这是与 null 合并相反的 差不多,有点像与一个简洁的内联 null-check 混合在一起,但是我确信[ 差不多]在 C # 中没有这样的操作符。
(我知道我可以用 C # 为它编写一个方法; 我使用 return NullOrValue.of(x, () => x.y);
,但是如果您有更好的方法,我也想看看。)