抛出表达式在这种情况下有效:
string myStr; public MyObj( string myStr ) => this.myStr = myStr ?? throw new ArgumentNullException( "myStr" );
但是为什么这个不能编译呢?
bool isRunning; public void Run() => isRunning = !isRunning || throw new InvalidOperationException( "Already running" );
From the original proposal on github :
仅在以下语法上下文中允许: 作为三元条件运算符的第二个或第三个操作数 ?: ?? 作为表达主体的lambda或方法。
仅在以下语法上下文中允许:
?:
??
做 课题