La direttiva using consente l'uso di un tipo definito in uno spazio di nomi senza specificare uno spazio di nomi completamente qualificato per quel tipo. Aggiungere il modificatore globale alla direttiva using significa che using sarà applicato a tutti i file nella compilazione (di solito un progetto). La direttiva globale di utilizzo è stata aggiunta a C# 10. La sintassi è:
La pratica raccomandata è mettere l'importazione globale in un file separato (uno per ogni progetto), ad esempio può essere chiamata:GlobalUsings.csFile.
Introduzione alla documentazione ufficiale Microsoft:Il login del link ipertestuale è visibile.
Abbiamo inserito lo spazio di nomi a cui Startup.cs faceva riferimento nel file GlobalUsings.cs, ricordandoci di aggiungere prima di usareGlobaleParole chiave!! Il codice è il seguente:
A questo punto, il compilatore segnala un errore che indica che "la funzione globale usando il comando non è disponibile in C# 8.0, si prega di usare il linguaggio versione 10.0 o successiva", come mostrato nella figura sottostante:
In questo caso, prendendo come esempio il progetto ASP.NET Core 3.1, basta fare doppio clic sul progetto (file .csproj) e aggiungere LangVersion al nodo PropertyGroup di Project->, come mostrato nella figura seguente:
Questa frase significa che il progetto utilizza la sintassi di C# 10 riguardo al versioning del linguaggio C#:Il login del link ipertestuale è visibile.
Il file non viene segnalato come errore, allo stesso tempoStartup.cs Il namespace a cui fa riferimento il file è in grigio, come mostrato nella figura sottostante:
Rimuoviamo i riferimenti di Program.cs, Startup.cs, e poi ricompiliamo il progetto come mostrato nell'immagine sottostante:
usareILSpy_binaries_7.2.0.6702-anteprima2Il file WebApplication1.dll risultante viene decompilato come mostrato nell'immagine seguente:
Il file di avvio ha ancora riferimenti usati, e non vengono generati file GlobalUsings.cs, quindi l'uso globale è solo zucchero sintassi, che semplifica alcuni lavori di programmazione tediosi e migliora notevolmente l'efficienza del lavoro.
.NET 6Namespace implicitiI riferimenti si ottengono anche utilizzando la funzione globale di utilizzo.
Attualmente, vengono aggiunti diversi namespace predefiniti per diversi tipi di SDK, e quelli esistenti sono i seguenti:
Per Microsoft.NET.Sdk, il namespace predefinito è il seguente:
Per Microsoft.NET.Sdk.Web:
Per Microsoft.NET.Sdk.Worker:
Se vuoi disabilitare i riferimenti impliciti allo spazio dei nomi, puoi disabilitare completamente questa funzione tramite DisableImplicitNamespaceImports, come segue:
Se vuoi solo disabilitare i riferimenti a Microsoft.NET.Sdk.Web, puoi configurare il DisableImplicitNamespaceImports_Web come segue:
Creiamo un nuovo progetto console .NET 6.0 per i test, e l'intero progetto ha Program.cs solo un file, come mostrato nella figura qui sotto:
ConsoleApp1.csproj è configurato come segue:
Dov'è la direttiva globale di utilizzo? Apri la directory obj (che contiene i file temporanei intermedi generati durante il processo di compilazione) e trovala nella directory Debug\net6.0ConsoleApp1.GlobalUsings.g.csFile:
ConsoleApp1.GlobalUsings.g.cs file vengono generati automaticamente in base alle impostazioni della proprietà ImplicitUsings del progetto.
(Fine)
|