La directive using permet d’utiliser un type défini dans un espace de noms sans spécifier un espace de noms entièrement qualifié pour ce type. Ajouter le modificateur global à la directive using signifie que using sera appliqué à tous les fichiers de la compilation (généralement un projet). La directive globale d’utilisation a été ajoutée à C# 10. La syntaxe est la suivante :
La pratique recommandée est de placer l’importation globale dans un fichier séparé (un pour chaque projet), par exemple elle peut être nommée :GlobalUsings.csLime.
Introduction à la documentation officielle de Microsoft :La connexion hyperlientérée est visible.
Nous avons mis l’espace de noms référencé par Startup.cs dans le fichier GlobalUsings.cs, en pensant à ajouter avant d’utiliserGlobalMots-clés !! Le code est le suivant :
À ce moment-là, le compilateur signalera une erreur indiquant que « la fonction globale utilisant la commande n’est pas disponible en C# 8.0, veuillez utiliser la version 10.0 ou ultérieure », comme montré dans la figure ci-dessous :
Dans ce cas, en prenant le projet ASP.NET Core 3.1 comme exemple, il suffit de double-cliquer sur le projet (fichier .csproj) et d’ajouter LangVersion au nœud PropertyGroup du Project->, comme montré dans la figure suivante :
Cette phrase signifie que le projet utilise la syntaxe de C# 10 concernant le versioning du langage C# :La connexion hyperlientérée est visible.
Le fichier n’est pas signalé comme une erreur, en même tempsStartup.cs L’espace de noms référencé par le fichier est grisé, comme montré dans la figure ci-dessous :
Nous supprimons les références de Program.cs, Startup.cs, puis recompilons le projet comme montré dans l’image ci-dessous :
utiliserILSpy_binaries_7.2.0.6702-aperçu2Le fichier WebApplication1.dll résultant est décompilé comme montré dans l’image suivante :
Le fichier de démarrage utilise toujours des références, et aucun fichier de GlobalUsings.cs n’est généré, donc l’utilisation globale est juste du sucre syntaxique, ce qui simplifie certaines tâches de programmation fastidieuses et améliore grandement l’efficacité.
.NET 6Espaces de noms implicitesLes références sont également obtenues en utilisant la fonction globale d’utilisation.
Actuellement, différents espaces de noms par défaut sont ajoutés pour différents types de SDK, et les espaces existants sont les suivants :
Pour Microsoft.NET.Sdk, l’espace de noms par défaut est le suivant :
Pour Microsoft.NET.Sdk.Web :
For Microsoft.NET.Sdk.Worker :
Si vous souhaitez désactiver les références implicites d’espace de noms, vous pouvez désactiver entièrement cette fonctionnalité via DisableImplicitNamespaceImports, comme suit :
Si vous souhaitez simplement désactiver les références à Microsoft.NET.Sdk.Web, vous pouvez configurer les DisableImplicitNamespaceImports_Web comme suit :
Créons un nouveau projet console .NET 6.0 pour les tests, et l’ensemble du projet ne contient Program.cs qu’un seul fichier, comme montré dans la figure ci-dessous :
ConsoleApp1.csproj est configuré comme suit :
Où se trouve la directive d’utilisation globale ? Ouvrez le répertoire obj (qui contient les fichiers temporaires intermédiaires générés lors du processus de compilation) et trouvez-le dans le répertoire Debug\net6.0ConsoleApp1.GlobalUsings.g.csLime:
ConsoleApp1.GlobalUsings.g.cs fichiers sont automatiquement générés en fonction des paramètres de propriété ImplicitUsings du projet.
(Fin)
|