代码气味 Id = blah== null ?空:something.x ?空:东西.y

Arj*_*ang -7 c#

有关如何修复此代码异味的任何提示(不是我的代码):

Id = blah== null ? null : something.x ? null : something.y
Run Code Online (Sandbox Code Playgroud)

Perlish 写作在 C# 中被认为是有益的吗?使用多行并清楚是件坏事吗?怎么会有人读到上面的内容?它需要 2 个“if”来分配一个值。

上面有更干净的处理方法吗?

mjw*_*lls 5

在这种情况下,另一个要考虑的替代方案是:

Id = (blah == null || something.x) ? null : something.y;
Run Code Online (Sandbox Code Playgroud)

好处是只有一个三元是必要的(因此null只从两个中的一个“分支”返回,而不是三个中的两个)。