C#10新特性-全域性和隱式usings

Eric zhou發表於2022-03-07

.NET 6釋出後支援C#10,C# 10 向 C# 語言新增了很多功能,今天我們分享一下全域性和隱式usings的使用:

using 指令簡化了使用名稱空間的方式。 C# 10 包括一個新的全域性 using 指令和隱式 usings,以減少需要在每個檔案頂部指定的 usings 數量。

1. 全域性using指令

如果關鍵字 global 出現在 using 指令之前,則 using 適用於整個專案,即實現了專案級的統一using

global using System;

可以在全域性 using 指令中使用 using 的任何功能。

例如,新增靜態匯入型別並使該型別的成員和巢狀型別在整個專案中可用。

如果在 using 指令中使用別名,該別名也會影響整個專案:

可以將全域性使用放在任何 .cs 檔案中,包括 Program.cs 或專門命名的檔案,如 globalusings.cs。 

全域性usings的範圍是當前編譯,一般對應當前專案。

2. 隱式usings

隱式usings功能會自動在構建的專案型別新增通用的全域性using指令。

要啟用隱式usings,請在 .csproj 檔案中設定 ImplicitUsings 屬性:

在新的 .NET 6 模板中啟用了隱式usings。

自動生成不可見的 using 語句並在全域性範圍內宣告它們,因此不必處理在每個檔案中重複宣告名稱空間的混亂。

我們新建了一個.NET 6 Web工程,MyMinimalAPI

 dotnet build後,找到obj/Debug/net6.0 資料夾以檢視隱藏的自動生成檔案 - [ProjectName].GlobalUsings.g.cs。使用一個單獨的類來將所有 using 語句儲存在一個地方。

啟用了這個隱式using之後,我們在任何class中,都無需再重複宣告using引用了,程式碼更簡潔、更方便

3. Combining using功能

檔案頂部的傳統 using 指令、全域性 using 指令和隱式 using 可以很好地協同工作。

隱式using允許您在專案檔案中包含適合當前專案型別的 .NET 名稱空間。

全域性 using 指令允許包含其他名稱空間,以使它們在整個專案中可用。

程式碼檔案頂部的 using 指令允許包含專案中僅少數檔案使用的名稱空間。

 

簡單分享這個C# 10小特性。

 

周國慶

2022/3/7

 

 

 

 

相關文章