【问题标题】:.NET Framework 4.8 seems to use C# version older than 7.NET Framework 4.8 似乎使用早于 7 的 C# 版本
【发布时间】:2021-11-22 23:13:29
【问题描述】:

似乎我遇到了与不处理内联 var 声明有关的问题。

原来是用老版本的c#。

这是一个屏幕截图,显示out string link 没有编译。

我也添加了没有截图的源

if (foo(appid, webuid, out string link))
{
  result.Body += link;
}

我调用的函数有签名

public static bool foo(string appid, string baz, out string link)
{
  /* code */
}

为什么 vs 使用旧的 C# 版本?

在我的项目中,我选择了 .NET Framework 4.8 作为目标。

错误信息显示

错误 CS8059 功能“输出变量声明”在 C# 中不可用 6. 请使用7.0或更高版本的语言。

【问题讨论】:

  • 您使用的是什么语言版本?它必须是 C# 6.0,并且该功能在 C# 6.0 中不可用。
  • 检查LangVersion的项目文件内容。
  • .NET 和 C# 是两个不同的东西。您需要 C# 7。目标是哪个 .NET Framework 并不重要。

标签: visual-studio visual-studio-2019 c#-7.0 .net-4.8


【解决方案1】:

我使用评论来制定答案。我检查了csproj文件并搜索了LangVersion

<LangVersion>6</LangVersion>

删除线解决了问题。

现在的语言版本是基于.NET framework版本的,没有单独指定。

您无法在项目高级属性中设置语言版本,但尽管如此,该设置似乎受到尊重。

【讨论】:

    猜你喜欢
    • 2023-02-08
    • 2013-09-28
    • 2021-11-28
    • 2012-05-29
    • 2010-10-15
    • 1970-01-01
    • 2019-10-21
    • 1970-01-01
    • 2011-03-14
    相关资源
    最近更新 更多