A using direktíva lehetővé teszi egy névtérben definiált típus használatát anélkül, hogy teljesen minősített névteret határozna meg az adott típusra. A globális módosító hozzáadása a using utasításhoz azt jelenti, hogy a using minden fájlra alkalmazzák a fordításban (általában egy projektben). A globális használati utasítást hozzáadták a C# 10-hez. A szintaxis a következő:
A javasolt gyakorlat, hogy a globális importot külön fájlba helyezzük (minden projekthez egyet), például elnevezhető:GlobalUsings.csFájl.
Microsoft hivatalos dokumentáció bevezetése:A hiperlink bejelentkezés látható.
A Startup.cs által hivatkozott névteret a GlobalUsings.cs fájlba helyezzük, emlékezve a hozzáadásra a használat előttGlobálisKulcsszavak!! A kódex a következő:
Ekkor a fordító hibát jelent, miszerint "a globális funkció parancs használatával nem elérhető C# 8.0-ban, kérjük, használjuk a 10.0-s vagy újabb nyelvverziót", ahogy az alábbi ábrán látható:
Ebben az esetben, ha a ASP.NET Core 3.1 projektet vegyük példaként, csak dupla kattintást kell a projektre (.csproj fájl), és hozzáadni a LangVersion-t a Project-> PropertyGroup csomóponthoz, ahogy az alábbi ábrán látható:
Ez a mondat azt jelenti, hogy a projekt a C# 10 szintaxisát használja a C# nyelvi verziózásra vonatkozóan:A hiperlink bejelentkezés látható.
A fájlt ugyanebben az időben nem jelentik hibákéntStartup.cs A fájl által hivatkozott névtér szürkével van kirajzolva, ahogy az alábbi ábrán látható:
Eltávolítjuk a Program.cs, Startup.cs hivatkozásait, majd újrafordítjuk a projektet, ahogy az alábbi képen látható:
használILSpy_binaries_7.2.0.6702-preview2A kapott WebApplication1.dll fájl dekompilyálva jelenik meg, ahogy az alábbi képen látható:
A startup fájlban továbbra is vannak használati hivatkozások, és nem generálnak GlobalUsings.cs fájlokat, így a globális használat csak szintaxiscukor, ami leegyszerűsíti néhány fárasztó programozási munkát és jelentősen javítja a munkahatékonyságot.
.NET 6Implicit névterekA hivatkozásokat a globális using funkcióval is elérik.
Jelenleg különböző alapértelmezett névtereket adnak hozzá különböző SDK típusokhoz, és a meglévők a következők:
A Microsoft.NET.Sdk alapértelmezett névtér a következő:
Microsoft.NET.Sdk.Web számára:
Microsoft.NET.Sdk.Worker számára:
Ha be akarod tiltani az implicit névtér hivatkozásokat, ezt a funkciót teljesen letilthatja a DisableImplicitNamespaceImports segítségével, az alábbiak szerint:
Ha csak a Microsoft.NET.Sdk.Web hivatkozásokat szeretnéd letiltani, a DisableImplicitNamespaceImports_Web a következőképpen konfigurálhatod:
Készítsünk egy új .NET 6.0 konzolprojektet tesztelésre, és az egész projektnek csak Program.cs fájlja van, ahogy az alábbi ábrán látható:
ConsoleApp1.csproj a következőképpen van konfigurálva:
Hol van a globális használati irányelv? Nyisd meg az obj könyvtárat (amely a fordítási folyamat során generált köztes ideiglenes fájlokat tartalmazza), és keresd meg a Debug\net6.0 könyvtárbanConsoleApp1.GlobalUsings.g.csFájl:
ConsoleApp1.GlobalUsings.g.cs fájlok automatikusan generálódnak a projekt ImplicitUsings tulajdonságbeállításai alapján.
(Vége)
|