Skip to main content

Button b = o as Button ?? new Button()

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

Popular posts from this blog

Learn Meteor book available

I'm pleased to announce the general release of my Learn Meteor book. It is now available as an ebook or print book from various sources: Learn Meteor print (paperback) on Lulu Learn Meteor ebook on LeanPub Learn Meteor ebook on Barnes & Noble Learn Meteor ebook on iBooks Learn Meteor ebook on Kobo Learn Meteor ebook on Scribd Learn Meteor ebook on Inktera Page Foundry Learn Meteor ebook on 24symbols Learn Meteor ebook on Amazon US Learn Meteor ebook on Amazon UK Learn Meteor ebook on Amazon France Learn Meteor ebook on Amazon Deutschland Learn Meteor ebook on Amazon Canada Learn Meteor ebook on Amazon India Learn Meteor ebook on Amazon Brasil Learn Meteor ebook on Amazon Mexico Learn Meteor ebook on Amazon España Learn Meteor ebook on Amazon Italia Learn Meteor ebook on Amazon Netherlands Learn Meteor ebook on Amazon Japan Learn Meteor ebook on Amazon Australia More sources are coming soon for the print version. Learn Meteor has been a fun experienc