Directiva using permite utilizarea unui tip definit într-un spațiu de nume fără a specifica un spațiu de nume complet calificat pentru acel tip. Adăugarea modificatorului global la directiva using înseamnă că using va fi aplicat tuturor fișierelor din compilație (de obicei un proiect). Directiva globală de utilizare a fost adăugată la C# 10. Sintaxa este:
Practica recomandată este să pui importul global într-un fișier separat (câte unul pentru fiecare proiect), de exemplu să poată fi denumit:GlobalUsings.csFișier.
Introducere în documentația oficială Microsoft:Autentificarea cu hyperlink este vizibilă.
Am pus spațiul de nume la care Startup.cs face referire în fișierul GlobalUsings.cs, amintindu-ne să adăugăm înainte de a folosiGlobalCuvinte cheie!! Codul este următorul:
În acest moment, compilatorul va raporta o eroare care indică că "funcția globală folosind comanda nu este disponibilă în C# 8.0, vă rugăm să folosiți limbajul versiunea 10.0 sau ulterioară", așa cum se arată în figura de mai jos:
În acest caz, luând ca exemplu proiectul ASP.NET Core 3.1, trebuie doar să dai dublu click pe proiect (fișier .csproj) și să adaugi LangVersion la nodul PropertyGroup Project->, așa cum se arată în figura următoare:
Această propoziție înseamnă că proiectul folosește sintaxa C# 10 în ceea ce privește versionarea limbajului C#:Autentificarea cu hyperlink este vizibilă.
Fișierul nu este raportat ca o eroare, în același timpStartup.cs Spațiul de nume referențiat de fișier este estompat, așa cum se arată în figura de mai jos:
Eliminăm referințele de la Program.cs, Startup.cs și apoi recompilăm proiectul așa cum se arată în imaginea de mai jos:
folosiILSpy_binaries_7.2.0.6702-previzualizare2Fișierul WebApplication1.dll rezultat este decompilat, așa cum se arată în imaginea următoare:
Fișierul de pornire încă folosește referințe și nu se generează fișiere GlobalUsings.cs, deci folosirea globală este doar zahăr sintactic, ceea ce simplifică unele lucrări plictisitoare de programare și îmbunătățește mult eficiența muncii.
.NET 6Spații de nume impliciteReferințele sunt obținute și folosind funcția globală de utilizare.
În prezent, sunt adăugate diferite spații de nume implicite pentru diferite tipuri de SDK, iar cele existente sunt următoarele:
Pentru Microsoft.NET.Sdk, spațiul de nume implicit este următorul:
Pentru Microsoft.NET.Sdk.Web:
Pentru Microsoft.NET.Sdk.Worker:
Dacă doriți să dezactivați referințele implicite la spațiul de nume, puteți dezactiva această funcție complet prin DisableImplicitNamespaceImports, după cum urmează:
Dacă vrei doar să dezactivezi referințele către Microsoft.NET.Sdk.Web, poți configura DisableImplicitNamespaceImports_Web după cum urmează:
Să creăm un nou proiect de consolă .NET 6.0 pentru testare, iar întregul proiect are Program.cs doar un singur fișier, așa cum se vede în figura de mai jos:
ConsoleApp1.csproj este configurat astfel:
Unde este directiva globală de utilizare? Deschide directorul obj (care găzduiește fișierele temporare intermediare generate în timpul procesului de compilare) și găsește-l în directorul Debug\net6.0ConsoleApp1.GlobalUsings.g.csFișier:
ConsoleApp1.GlobalUsings.g.cs fișierele sunt generate automat pe baza setărilor proprietății ImplicitUsings ale proiectului.
(Sfârșit)
|