.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