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


前言

之前不知看過哪位前輩的博文有點印象C# 7控制台開始支持執行異步方法,然后閑來無事,搞着,搞着沒搞出來,然后就寫了這篇博文,不喜勿噴,或許對您有幫助。

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

心想都VS2017了肯定是支持C# 7+語法,然后接着將控制台程序修改為異步,然后告知於我不行,尼瑪這不是扯淡了么,如下:

    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),結果一安裝,它告訴我安裝了或更高版本:

然后一查找資料發現在Visual Studio 2017 Update 3就支持C# 7語法,那我現在Visual Studio 2017版本都已經超過這版本不知道多少了,然后一看恍然大悟:

好了,到了這里我的VS 2017已經支持C# 7語法了,看來是缺少什么設置了,那就看如下方案吧。

(1)右鍵項目解決方案點擊【屬性】。

(2)點擊左側Tab中的【生成】,出來的界面右下角有個【高級】點擊進去,如下:

原來是使用語言版本是最新主要版本【默認】,那不應該是最高版本,打開下拉列表,選擇我們想要的版本吧,就可以愉快的玩耍了,如下:

或者我們手動編輯以.csproj的項目文件,找到如下內容:

<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>保存,然后生成解決方案就好使了。

總結 

理論上VS 2017不是應該使用最高C#語法版本么,但事實不是如此,所以如果您遇到這個問題,首先請確保您是否安裝了.NET Framework 4.7,如果安裝了就按照上述方法進行即可在控制台使用異步方法以及對應C# 7+語法。可能是我知道的太少,寫出來或許對不知道的童鞋有些許幫助,早就知道的大佬們就跳過吧,我們下節再會。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM