【问题标题】:CS1026: ) Expected | CS1002: ; expected | CS1513: } expectedCS1026:) 预期 | CS1002: ;预期 | CS1513:} 预期
【发布时间】:2019-08-09 13:08:51
【问题描述】:
 private void Context_EndRequest(object sender, EventArgs e)
    {
        var context = ((HttpApplication)sender).Context;
        if (context.Items[typeof(IServiceScope)] is IServiceScope scope)
        {
            scope.Dispose();
        }
    }

当我尝试构建我的项目(Framework 4.7.2)时,我得到了

: 错误 CS1026: ) 预期: 错误 CS1002: ;预期:错误 CS1513: } 预期

上线

if (context.Items[typeof(IServiceScope)] is IServiceScope scope)

但我看不出它在哪里抛出错误。

【问题讨论】:

  • 在项目的 Build 属性中检查 C# 版本。您正在使用 C# 7 中引入的“模式匹配”。
  • obj is Scope scope 是否已在 4.7.2 中实现?
  • @MaximeRecuerda 这是一种语言功能,而不是 .Net Framework 功能
  • 模式匹配是 C# 7 或更高版本中引入的语言功能,而不是 .NET 功能。框架版本无关紧要。
  • @phuzi 你启发了我的生活,我一直以为我被 C# 6 卡住了,因为我无法升级我的框架!

标签: c# asp.net asp.net-mvc


【解决方案1】:

它有助于通过 Nuget 更新“Microsoft.Net.Compilers”

现在它构建没有错误。

【讨论】:

  • 您还应该提到您必须更改 C# 版本,以便您的答案是完整的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多