.NET Framework 4.8 似乎使用早于 7 的 C# 版本

.NET Framework 4.8 seems to use C# version older than 7

我似乎遇到了与不处理内联 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 作为目标。

错误消息显示为

Error CS8059 Feature 'out variable declaration' is not available in C# 6. Please use language version 7.0 or greater.

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

<LangVersion>6</LangVersion>

删除线解决了问题。

现在的语言版本以.NET framework版本为准,不另行规定。

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