我的VSCode调试器说我正在使用C#4。我找不到任何有关使VSCode切换到C#7的文档。我在Windows 10上。我不知道这是否是DotNet Core问题,即VSCode。或Omnisharp问题。我将不胜感激有人将我指向解决该问题的一组说明或帖子。

我的VSCode .csproj文件顶部的摘录:

    <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="4.0"
    DefaultTargets="Build"
    xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup> <LangVersion>4</LangVersion> </PropertyGroup>
    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>

这些是我的VSCode版本:
    Version: 1.27.2 (user setup)
    Commit: f46c4c469d6e6d8c46f268d1553c5dc4b475840f
    Date: 2018-09-12T16:17:45.060Z
    Electron: 2.0.7
    Chrome: 61.0.3163.100
    Node.js: 8.9.3 V8: 6.1.534.41
    Architecture: x64
    .NET Core SDK version 2.1.402 (x64)

最佳答案

正如您在问题的一部分中指出的,您将csproj发布到当前的语言版本设置为4。
<LangVersion>4</LangVersion>
通过将其设置为<LangVersion>7.3</LangVersion>,可以获得C#7.3的最新功能。

如果只需要C#7.0功能,则可以将值设置为<LangVersion>7</LangVersion>
This document列出了(当前)可以传递给-langversion编译器标志的有效选项。如果希望项目始终使用最新的C#版本进行编译,则可以在<LangVersion>latest</LangVersion>中将值设置为.csproj。当然,这只会编译为您的编译器版本支持的最新版本。

您可以使用值default来获取最新主版本(当前为C#7.0)的功能。

在最新版本的编译器中,默认值的行为已更改。编辑时准确的文档是this one,其中指出以下内容:


Target framework | Version | C# language version default

.NET Core        | 3.x     | C# 8.0

.NET Core        | 2.x     | C# 7.3

.NET Standard    | all     | C# 7.3

.NET Framework   | all     | C# 7.3

10-07 18:33