C# s'enrichit d'un safe navigator operator
A l'image de Groovy, l'opérateur «?.» fait son entrée
C#, l'un des nombreux apports de Microsoft au développement informatique, figure actuellement parmi les langages les plus populaires selon l'index TIOBE, nul doute que son succès est dû au succès conjoint des systèmes d'exploitation Microsoft et de la plate-forme .Net, toutefois il demeure possible que son succès soit relatif à son équipe de développement qui reste à l'écoute de sa communauté et met à sa disposition un système de retour d'expérience (FeedBack) tel que www.uservoice.com.
C'est ainsi donc qu'il a été décidé d'introduire le nouvel opérateur «?.» au langage C#, après que cette suggestion ait perçu plus de 4.313 votes favorables. Appelé aussi en anglais Safe Navigation Operator, l'opérateur «?.» permet de vérifier si la référence à un membre d'une classe est égale à Null au lieu de générer une exception de type NullReferenceException, économisant par la même occasion plusieurs lignes de code au programmeur.
La force de l'opérateur prend tout son sens, lorsqu'il s'agit d'une référence à un membre d'une classe, qui est membre d'une autre classe et ainsi de suite, dans ce genre de situation il s’avère plus difficile de détecter l'origine de l'exception, un exemple vaut mieux qu'un long discours, considérant ce qui suit :
var g1 = parent.child.child.child;
Si un des child contient la valeur Null, une exception sera levée :
var g1 = [parent].[child].[null].child;
L'utilisation du nouvel opérateur permet d'assigner la valeur Null à la variable, dans le cas où une des références vaut Null :
1 2
| var g1 = parent?.child?.child?.child;
if (g1 != null) // TODO |
Au lieu d'un long code équivalent :
1 2 3 4 5
| var item = this.Parent;
item = (item == null) ? null : item.child;
item = (item == null) ? null : item.child;
var g1 = (parent == null) ? null : item.child;
if (g1 != null) // TODO |
Enfin Mads Torgersen, le manager du projet C# a révélé que même si cet opérateur a reçu les faveurs de la communauté, son introduction était sur les rails depuis plusieurs mois, vu son utilité, sa facilité d'utilisation. Reste à savoir donc la date de sortie de la prochaine version du langage incluant cet opérateur.
Source : Annonce sur MSDN
Et vous ?
Qu’en pensez-vous ?
Pensez-vous que cet opérateur sera introduit prochainement dans d'autres langages ?
Partager