Voilà le type de ligne qu'on peut écrire grâce à C# V3 (dans Visual Studio 2008, donc).
Que veut-elle dire? Que l'on veut récupérer o en tant que Button. Si ce n'est pas un Button ou qu'il est null, on veut récupérer une nouvelle instance de Button.
Où est le progrès? Eh bien que l'on écrit très peu pour réaliser une opération très courante: gérer les cas limites. En C# V1, ou en C++, il faudrait écrire:
Button b;
if(o!=null && o is Button)
b = (Button)o;
else
b = new Button();
Pour ce qui est de l'expression du titre, je pense que vous imaginez déjà l'utiliser dans un gestionnaire d'événements générique...
Comment s'appelle cet opérateur "??" ? En anglais, opérateur "null coalescing". En français, ça reste à inventer.
Pour être général, l'expression:
valeur1 ?? valeur2
vaut valeur1 si valeur1 n'est pas null, et valeur2 sinon.
Plus d'informations, et son application à LINQ, par Scott Guthrie.
Comments