De using directive maakt het gebruik van een type in een naamruimte mogelijk zonder een volledig gekwalificeerde naamruimte voor dat type te specificeren. Het toevoegen van de globale modifier aan de using directive betekent dat using wordt toegepast op alle bestanden in de compilatie (meestal een project). De globale gebruiksrichtlijn werd toegevoegd aan C# 10. De syntaxis is:
De aanbevolen praktijk is om de globale import in een apart bestand te zetten (één voor elk project), bijvoorbeeld dat het zo genoemd kan worden:GlobalUsings.csBestand.
Officiële documentatie-introductie van Microsoft:De hyperlink-login is zichtbaar.
We zetten de naamruimte waarnaar Startup.cs verwijst in het GlobalUsings.cs-bestand, waarbij we eraan denken om toe te voegen voordat we het gebruikenGlobaalTrefwoorden!! De code is als volgt:
Op dit moment zal de compiler een foutmelding melden met de melding dat "de functie globaal met het commando niet beschikbaar is in C# 8.0, gebruik taalversie 10.0 of later", zoals weergegeven in de onderstaande figuur:
In dit geval, als we het ASP.NET Core 3.1-project als voorbeeld nemen, hoef je alleen maar dubbel te klikken op het project (.csproj-bestand) en LangVersion toe te voegen aan de Project-> PropertyGroup-node, zoals te zien is in de volgende figuur:
Deze zin betekent dat het project de syntaxis van C# 10 gebruikt met betrekking tot C#-taalversie:De hyperlink-login is zichtbaar.
Het bestand wordt tegelijkertijd niet als fout gerapporteerdStartup.cs De naamruimte waarnaar het bestand verwijst, is grijs gemaakt, zoals getoond in de onderstaande figuur:
We verwijderen de referenties van Program.cs, Startup.cs en compileren het project opnieuw zoals te zien is op de onderstaande afbeelding:
gebruikenILSpy_binaries_7.2.0.6702-preview2Het resulterende WebApplication1.dll-bestand wordt gedecompileerd zoals weergegeven in de volgende afbeelding:
Het opstartbestand heeft nog steeds gebruiksreferenties en er worden geen GlobalUsings.cs bestanden gegenereerd, dus globaal gebruik is slechts syntaxis, wat wat saai programmeerwerk vereenvoudigt en de werkefficiëntie aanzienlijk verbetert.
.NET 6Impliciete naamruimtesReferenties worden ook bereikt door gebruik te maken van de globale vermeldingsfunctie.
Momenteel worden verschillende standaard naamruimtes toegevoegd voor verschillende SDK-typen, en de bestaande zijn als volgt:
Voor Microsoft.NET.Sdk is de standaard naamruimte als volgt:
Voor Microsoft.NET.Sdk.Web:
Voor Microsoft.NET.Sdk.Worker:
Als je impliciete namespace-referenties wilt uitschakelen, kun je deze functie volledig uitschakelen via DisableImplicitNamespaceImports, als volgt:
Als je alleen referenties naar Microsoft.NET.Sdk.Web wilt uitschakelen, kun je de DisableImplicitNamespaceImports_Web als volgt configureren:
Laten we een nieuw .NET 6.0 consoleproject maken om te testen, en het hele project heeft slechts Program.cs één bestand, zoals te zien is in de onderstaande figuur:
ConsoleApp1.csproj is als volgt geconfigureerd:
Waar is de globale gebruiksrichtlijn? Open de obj-map (waarin de tussenliggende tijdelijke bestanden staan die tijdens het compilatieproces zijn gegenereerd) en vind deze in de Debug\net6.0-mapConsoleApp1.GlobalUsings.g.csBestand:
ConsoleApp1.GlobalUsings.g.cs bestanden worden automatisch gegenereerd op basis van de ImplicitUsings-instellingen van het project.
(Einde)
|