为什么我不能有这样的东西:
Some_Function ? myList.Add(a) : throw new Exception();
Run Code Online (Sandbox Code Playgroud)
为什么我不能在?:operator的else部分抛出异常??:运营商的主要目的是什么?
建议 如果有人想知道同样的事情,除了阅读下面的答案,我建议你也阅读这篇文章.. 表达与声明
其他答案和评论当然是正确的(我们可以参考文档),虽然我对这个问题的理解更像是"为什么它必须这样?".
根据C#5.0规范,条件运算符形成表达式,而不是语句.我怀疑它不是一个声明的原因,因此阻止你做类似的事情a ? b() : throw e只是因为我们已经有一个声明构造来实现基本相同的东西; 即,if..else.
if (a) { b(); } else { throw e; }
Run Code Online (Sandbox Code Playgroud)
条件运算符的好处是它可以在语句或其他表达式中使用.
bool? nb = GetValue();
if (nb ?? (a ? b() : c())) { throw e; }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1549 次 |
| 最近记录: |