C# 10 – Global Using

c sharp logo

J’ai récemment eu la chance de démarrer un nouveau projet sur lequel nous utilisons .NET6 et C#10. J’ai donc pu commencer à mettre en pratique quelques-unes des nouvelles possibilités qui s’offrent à nous. Dans cet article, je voulais exposer l’utilisation des global using de C# 10, qui va à mon avis grandement aider pour la lisibilité de notre code.

Répétitions de usings

Prenons en exemple des classes de tests que j’ai au niveau d’un projet de tests d’architecture, pour lequel j’ai utilisé ArchUnit (d’ailleurs nous avons fait un épisode du Bracket Show sur ce sujet). Dans toutes mes classes de tests, j’ai toujours ceci en haut du fichier:

Image montrant les using utilisés dans la classe

Je pourrais me faire un template pour ce type de classe de tests, mais ceci pourrait devenir exponentiel selon les différents cas d’utilisations en dehors de uniquement cet exemple. En plus, ça n’enlève pas ces quelques lignes du haut de mon fichier.

Les global using

Voilà que les global using viennent palier à ce problème. L’idée est simple, il faut uniquement ajouter le mot global devant un using, et il deviendra importé pour toutes les classes d’un projet. Ce comportement est similaire à ce qu’on met dans le fichier _Imports.razor d’un projet fait avec Blazor. Idéalement on place ces usings à l’intérieur d’un fichier séparé, facilement identifiable, et on n’a plus à s’en soucier.

Avec ceci, nous aurons même un warning de la part de Visual Studio si on tente d’ajouter un de ces usings dans une classe, de la même manière que si on le mettait en double dans la classe.

Ne pas abuser

Malgré que très utile, à mon avis il faut faire attention de ne pas abuser. Ceci devrait être utilisé pour ce qu’on identifie comme étant commun à tout le projet. Certains imports peuvent être spécifiques à une classe, on ne devrait donc pas les voir importés globalement pour le projet.

Conclusion

Ceci est un premier article sur ce que C# 10 va nous offrir, d’autres suivront dans les prochaines semaines. Que pensez-vous de cette fonctionnalité? Est-ce qu’il y a autre chose de C# 10 que vous aimeriez voir abordé? Laissez-moi savoir dans les commentaires.

Bruno

Auteur : Bruno

De jour, je suis développeur, chef d'équipe et le co-animateur du Bracket Show. De soir, je suis un mari et le père de deux magnifiques enfants. Le temps qu'il me reste après tout cela, je le passe à tenter de bouger, à jouer et écrire des critiques de jeux vidéos, ainsi qu'à préparer du matériel pour les enregistrements du Bracket Show et pour ce blog. Au travers tout cela, je suis aussi passionné de musique et de microbrasseries.