Une nouvelle découverte dans les specs du langage c# : l'opérateur ??.
Je connaissais l'opérateur ?:, que j'utilise parfois (même si je m'en méfie dans les codes trop complexes par sa difficulté de lecture), mais je suis tombé sur cette notation en recherchant des infos sur un "singleton par requête".
Bon, je ne suis pas sur qu'il soit raisonnable de l'utiliser en lieu et place d'un bon if classique :
if(toto == null)
toto = new MaClasse();
return toto;
Surtout que c'est ce qu'il cherche à faire dans son exemple "si telle variable vaut null, l'initialiser ; ensuite renvoyer la variable".
(Pour la petite anecdote, je suis tombé sur ces histoires de ThreadStatic, CallContext, HttpContext car je cherche à mettre en place pour une appli serveur sensée fonctionner à la fois en ASP.NET et en service, donc indépendante de ce fameux HttpContext.Current. Et bien c'est au final loin d'être simple).