Sto provando a utilizzare l'operatore condizionale (ternario) per assegnare l'espressione lambda corretta a una variabile, a seconda di una condizione, ma ottengo l'errore del compilatore: Tipo di l'espressione condizionale non può essere determinata perché non esiste una conversione implicita tra "espressione lambda" e "espressione lambda". Posso usare il normale if-else per risolvere questo problema, ma l'operatore condizionale ha più senso per me (in questo contesto), renderebbe il codice più conciso aggiungere, almeno, mi piacerebbe sapere i motivi per cui non lo fa lavoro.Assegnare un'espressione lambda usando l'operatore condizionale (ternario)
// this code compiles, but is ugly! :)
Action<int> hh;
if (1 == 2) hh = (int n) => Console.WriteLine("nope {0}", n);
else hh = (int n) => Console.WriteLine("nun {0}", n);
// this does not compile
Action<int> ff = (1 == 2)
? (int n) => Console.WriteLine("nope {0}", n)
: (int n) => Console.WriteLine("nun {0}", n);
Grazie per la tua rapidità rich.okelly, Nikhil Agrawal, Romain Verdier e Alex! Tutte le tue risposte sono state corrette (compilare e dare il risultato corretto), ma la mia scelta va a rich.okelly a causa della sua spiegazione. –