投掷表达式适用于这种情况:
string myStr;
public MyObj( string myStr ) =>
this.myStr = myStr ?? throw new ArgumentNullException( "myStr" );
Run Code Online (Sandbox Code Playgroud)
但为什么不编译呢?
bool isRunning;
public void Run() =>
isRunning = !isRunning || throw new InvalidOperationException( "Already running" );
Run Code Online (Sandbox Code Playgroud)
甲掷表达被允许只能在以下句法上下文:
- 作为三元条件运算符的第二个或第三个操作数
?:- 作为空合并运算符的第二个操作数
??- 作为一个表达身体lambda或方法的身体.
这是唯一可以使用throw表达式的三种情况.因此,不包括在布尔表达式中使用throw,并且语法无效.
| 归档时间: |
|
| 查看次数: |
148 次 |
| 最近记录: |