Paul Vick (Technical Lead de Visual Basic .NET) et Anders Hejlsberg (Technical Fellow in the Developer Division – Chef designer de C#) l’ont annoncé, Visual Basic et C# vont évoluer ensemble, ce qui signifie que toute nouveauté apportée à un langage sera présente dans l’autre. Cette annonce se justifiera dès Visual Basic 10 et C# 4.0.
Après une telle introduction, je ne peux que vous montrer une nouveauté de C# 4.0 qui est présente dans VB depuis longtemps : les paramètres optionnels.
Voilà comment, en VB.NET, écrire une méthode avec des paramètres optionnels. En utilisant le mot clé Optional.
En C# il fallait écrire une méthode, puis faire un nombre de surcharge conséquent :
Mais il n’était pas possible de passer uniquement les paramètres path et bufferSize sans avoir de paramètres encoding et detectEncoding sans avoir a réécrire des surcharges de méthodes…
Nouveauté C# 4.0 : Il est désormais possible d’utiliser les paramètres optionnels en spécifiant simplement les valeurs qui prennent les variables en cas de non affectation de celle-ci lors de l’appel de la méthode.
Passons maintenant à l’appel d’une méthode avec des paramètres optionnels :
Maintenant, je souhaite appeler la même méthode avec les paramètres bufferSize et path, je vais donc devoir utiliser le nommage des paramètres. En effet, il n’est plus obligatoire de respecter l’ordre des paramètres défini dans l’écriture de la méthode.
Pour résumer :
· Pour créer un paramètre nommé, il suffit d’ajouter la valeur par défaut du paramètre dans la signature de la méthode.
· Lors de l’appel de la méthode, il n’est pas obligatoire de donner les paramètres dans l’ordre mais il faut utiliser le nommage des paramètres : « NomParametre: »
· Utiliser des paramètres optionnels permet d’éviter d’utiliser des surcharges de méthodes inutiles.