以三元表达式合并评估者是不是很糟糕?(C#)

Cap*_*sey 0 c# ternary-operator null-coalescing-operator

我环顾四周,没找到一个同等的问题.
这是不好的编码练习吗?我可以很容易地阅读它,但对于阅读代码的人来说它是否太神秘了?

bool? testBool = null;  
string result;  
result = (testBool ?? false ? "Yes" : "No");  
Run Code Online (Sandbox Code Playgroud)

编辑:我向大家道歉,感谢一些可怕的代码!这是一个有效的例子.
我对回复的速度感到有些不知所措.我打算删除这个并且做得对,但已经有4个回复了!

Jon*_*upp 10

我会添加parens以澄清发生了什么 - 即.

bool? testbool = null;
string result;
result = (testbool ?? false) ? "Yes" : "No";
Run Code Online (Sandbox Code Playgroud)

有了它,我会很好.没有它,我必须研究一下才能弄清楚发生了什么(如果它甚至编译 - 我不知道我的头顶操作的顺序是什么?:vs. ??)

  • +1很有帮助.原始表达是WTF(在"代码质量的唯一真实度量 - WTF /分钟"的意义上) (4认同)