代码之家  ›  专栏  ›  技术社区  ›  HappyNomad

抛出不适用于布尔表达式的表达式?

  •  6
  • HappyNomad  · 技术社区  · 7 年前

    抛出表达式在这种情况下有效:

    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" );
    
    2 回复  |  直到 7 年前
        1
  •  9
  •   David Arno    7 年前

    From the original proposal on github :

    仅在以下语法上下文中允许:

    • 作为三元条件运算符的第二个或第三个操作数 ?:
    • ??
    • 作为表达主体的lambda或方法。

        2
  •  1
  •   HappyNomad    7 年前

    课题