如何在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+語法。多是我知道的太少,寫出來或許對不知道的童鞋有些許幫助,早就知道的大佬們就跳過吧,咱們下節再會。

相關文章
相關標籤/搜索