【发布时间】:2023-03-15 23:45:01
【问题描述】:
Throw 表达式在这种情况下有效:
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" );
【问题讨论】:
-
因为提案特定于空合并运算符,而不是逻辑或运算符。 github.com/dotnet/csharplang/blob/master/proposals/csharp-7.0/…