Quiz C# – n. 3

Qual è l’output completo stampato eseguendo il seguente codice C#?

Console.WriteLine("Start");
var x = false;
var f = new Func<bool>(() => {Console.WriteLine("Function called"); return true; });
if (x & f.Invoke())
   Console.WriteLine("End 1") ;
else Console.WriteLine("End 2" );

Output stampato:

Start
Function called
End 2

Spiegazione:
All’inizio stampa subito “Start”.

La piccola difficoltà della domanda sta nell’operatore & bit a bit utilizzato nell’if. Infatti anche se x è false, non può essere cortocircuitata la condizione booleana, come avverrebbe con un operatore && logico, e la funzione f viene quindi invocata in ogni caso, stampando “Function called”.

Infine, non essendo la condizione dell’if verificata, viene stampato “End 2”.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.