如何在Visual Studio 2017中使用C# 7+语法

前言

以前不知看过哪位前辈的博文有点印象C# 7控制台开始支持执行异步方法,而后闲来无事,搞着,搞着没搞出来,而后就写了这篇博文,不喜勿喷,或许对您有帮助。异步

在Visual Studio 2017配置支持C# 7+语法

心想都VS2017了确定是支持C# 7+语法,而后接着将控制台程序修改成异步,而后告知于我不行,尼玛这不是扯淡了么,以下:async

    public class Program
    {
        public static async Task Main(string[] args)
        {
            using (var context = new EFCoreDbContext())
            {
                var blog = await context.Blogs.FindAsync(3);
                blog.Name = "Jeffcky";
                var result = await context.SaveChangesAsync();
            }
            Console.ReadKey();
        }
    }

而后得知.NET Framework 4.7能够使用C# 7语法,心想难道是没装.NET Framework 4.7么,因而乎到以下地址下载.NET Framework 4.7(https://www.microsoft.com/zh-CN/download/details.aspx?id=55170),结果一安装,它告诉我安装了或更高版本:spa

而后一查找资料发如今Visual Studio 2017 Update 3就支持C# 7语法,那我如今Visual Studio 2017版本都已经超过这版本不知道多少了,而后一看恍然大悟:code

好了,到了这里个人VS 2017已经支持C# 7语法了,看来是缺乏什么设置了,那就看以下方案吧。orm

(1)右键项目解决方案点击【属性】。blog

(2)点击左侧Tab中的【生成】,出来的界面右下角有个【高级】点击进去,以下:get

原来是使用语言版本是最新主要版本【默认】,那不该该是最高版本,打开下拉列表,选择咱们想要的版本吧,就能够愉快的玩耍了,以下:string

或者咱们手动编辑以.csproj的项目文件,找到以下内容:it

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <PlatformTarget>AnyCPU</PlatformTarget>
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <LangVersion>default</LangVersion>
  </PropertyGroup>

将如上LangVersion修改咱们对应的版本如:<LangVersion>7.2</LangVersion>保存,而后生成解决方案就好使了。io

总结 

理论上VS 2017不是应该使用最高C#语法版本么,但事实不是如此,因此若是您遇到这个问题,首先请确保您是否安装了.NET Framework 4.7,若是安装了就按照上述方法进行便可在控制台使用异步方法以及对应C# 7+语法。多是我知道的太少,写出来或许对不知道的童鞋有些许帮助,早就知道的大佬们就跳过吧,咱们下节再会。

相关文章
相关标签/搜索