ASP․NET Core 6.0 語法糖 - 主控台應用程式

大家期望已久的Visual Studio 2022,微軟終於有消息釋出快要正式發布了,趁現在快來一起看看全新ASP․NET Core 6.0語法糖有什麼變化吧。

image


下載安裝

我們可以直接從 Visual studio 2022 Preview 官方網站,下載最新發布的2022試用預覽安裝包 (依照自己的需求下載適合您的版本)。

image


建立專案

Step 1. 在Visual Studio 中,選取 [建立新專案],點擊下一步 > 選取 [主控台應用程式]。

image

Step 2. 設定專案名稱 ConsoleAppDemo ,以及要存放專案的路徑。

image

Step 3. 目標Framework 選取 ASP․NET Core 6.0,目前還是預覽版本,在後續正式發布後,據說將開啟為期三年的長期支持,完成設定後點擊 [建立] 專案。

image


NET5 vs NET6

這邊我們另外建立了 ASP .NET Core 5.0 版本,對照一下升級後的差異,可以很明顯看到,升級 .NET 6.0 之後,預設啟動的 Program 濃縮到只剩下一行,已經看不到using namespacs宣告,甚至看不到 method,看到這邊是不是覺得太酷了!

這邊就所謂的 Top-level statementc#10 的全新語言特性,讓應用程式初始檔案可省略 using namespacs宣告。

image


預設Program參數args

看到這邊你可能會想,完全看不到 args 那還能使用 args 這個參數傳值嗎?

image

Step 1. 設定初始傳入參數,開啟專案 [ 屬性] > 選取 [ 偵錯] > 點擊 [ 開啟debug啟動設定檔UI]。

image

Step 2. 找到 [命令列印數] 設定初始傳入參數預設值。

image

Step 3. 回到 Program 檔案,我們可以在程式碼裡面直接直接打上 args ,雖然看不到,但是預設已經把 Program class 的 method 帶入。

image

Step 4. 執行程式,可以看到 args 將預設的參數值帶入並印出。

image

查看 launchSettings.json 檔案,會發現 Visual Studio 2022 .NET6 會自動寫入我們在專案屬性的所有設定。

image


專案檔

開啟專案檔 (快速點兩下),參數說明:

  • OutputType:此範例為主控台應用程式,這邊需宣告為 [EXE]。
  • TargetFramework:目標框架。
  • ImplicitUsings:隱含的using。

    global using 是 C#10 全新的語言特性,可以利用這種屬性設定去啟用這個sdk底下預設的命名空間,會自動using進去,簡單說就是全域的using。

image


Global using

帶大家看看Project Sdk:Microsoft.NET.Sdk 的  ImplicitUsings 預設using了哪些東西。

Step 1. 首先找到 dotnet sdk 路徑 C:\Program Files\dotnet\sdk 根據自己的sdk版本進入,今天範例使用的是 [6.0.100-rc.2.21505.57]

C:\Program Files\dotnet\sdk\6.0.100-rc.2.21505.57\Sdks\Microsoft.NET.Sdk\targets

image

Step 2. 開啟 Microsoft.NET.Sdk.CSharp.props 檔案,Implicit imports 區塊為有條件的載入,當 ImplicitUsings=tureImplicitUsings=enable 時,都會預設using以下的命名空間。

image


如果預設的PackageReference不夠用,該如何擴充呢?

非常簡單,直接將 Implicit imports 整段code複製到專案檔,移除預設的命名空間,加入自己的擴充設定就完成了。

image


  • 參考文章
tags: Visual Studio 2022

留言板
歷史留言

標籤