Nous poursuivons notre découverte des fonctionnalités de C#8, avec dotnet core. Passons maintenant à une fonctionnalité qui va améliorer l’écriture des extensions de méthode.
Il manque une méthode, je fais quoi chef ?
Quand vous aviez une classe, inaccessible dans son contenu (venant d’une autre dll par exemple), ou bien sur laquelle vous ne souhaitiez pas ajouter directement une nouvelle méthode, vous faisiez comment ?
C# avait introduit il y a très longtemps maintenant, les extensions de méthodes.
Prenons un exemple.
Vous avez une classe Wookie. Et vous souhaitez faire voler un wookie, sans écrire la méthode dans la classe Wookie, ou sans faire d’héritage (même si c’est ce qui serait conseillé ici).
Créez une classe Wookie :
Puis ajouter une nouvelle classe, static cette fois-ci, respectant le patron Extension de method :
Cela va vous permettre, dans votre code d’exécution, votre Program, de voir et d’utiliser la méthode Voler
OK c’est génial ! Par contre, vous avez vu le code qu’il faut écrire pour faire des extensions de méthode ! Un peu lourd, je trouve !
(en formation, va pour expliquer pourquoi, sans arriver à dire “ben c’est comme ça, et pas autrement”)
Ecrire une extension de méthode en C# 8
En C# 8, ils ont revu la façon d’écrire les extensions de méthode. Elle est plus agréable, plus fluide, plus logique, selon nous.
Voyez plutôt :
Fini l’obligation de déclarer tout en static !
Fini l’obligation de mettre le this et de passer la variable en paramètre ..
Fini …
Bon, en vrai, à l’heure actuelle (C# 8 avec .net core 3.0 beta 7), ce n’est pas encore validé, et donc pas encore possible à écrire.
Donc, hélas, ce n’est pas encore utilisable
Pourtant ça promet !
…. Affaire à suivre !
Retrouvez le code source de nos découvertes via Github