5

我的 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)
4

2 回答 2

12

正如您在发布 csproj 的问题部分中指出的那样,当前语言版本设置为 4。

<LangVersion>4</LangVersion>

您可以通过将其设置为来获得 C# 7.3 的最新功能<LangVersion>7.3</LangVersion>

如果您只想要 C# 7.0 功能,则可以将值设置为<LangVersion>7</LangVersion>

本文档列出了可以传递给-langversion编译器标志的(当前)有效选项。如果您希望您的项目始终使用最新可用的 C# 版本进行编译,您可以<LangVersion>latest</LangVersion>.csproj. 当然,这只会编译到您的编译器版本支持的最新版本。

默认值的行为在最新版本的编译器中发生了变化。编辑时准确的文档是this one,其中说明如下:

编译器根据以下规则确定默认值:

目标框架 版本 C#语言版本默认
.NET 核心 6.x C# 10.0
.NET 核心 5.x C# 9.0
.NET 核心 3.x C# 8.0
.NET 核心 2.x C# 7.3
.NET 标准 2.1 C# 8
.NET 标准 1.x/2.0 C# 7.3
.NET 框架 全部 C# 7.3
于 2018-10-04T22:12:16.230 回答
4

你只需要更新你的

<PropertyGroup> <LangVersion>4</LangVersion> </PropertyGroup> 

到你想要的版本

于 2018-10-04T22:10:19.610 回答