L'operatore ?? (C#)

Non l’ho visto utilizzare spesso e, lo ammetto, anche io ogni tanto me ne dimentico (per fortuna che c’è Resharper che me lo ricorda Stick out tongue).

Si tratta dell’operatore ?? introdotto con il .NET Framework 2.0. Lo scopo è decisamente semplice: restituire un valore di dafault se il tipo è nullo, altrimenti restituire il valore corretto. Il tutto in forma molto compatta. In sostanza, anzichè scrivere un if o utilizzare l’operatore condizionale ? (in caso di valutazione dei null) in questo modo:

   1: int? x = 0;
   2: int y = (x == null) ? -1 : x;

possiamo scrivere più semlicemente:

   1: int? x = 0;
   2: int? z = x ?? -1;

Riferimento alla documentazione ufficiale: http://msdn2.microsoft.com/en-us/library/ms173224(VS.80).aspx 

Tags: