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