Estoy tratando de usar el operador condicional (ternario) para asignar la expresión lambda adecuada a una variable, dependiendo de una condición, pero obtengo el error del compilador: Tipo de la expresión condicional no se puede determinar porque no hay una conversión implícita entre 'expresión lambda' y 'expresión lambda'. Puedo usar el if-else regular para resolver este problema, pero el operador condicional tiene más sentido para mí (en este contexto), haría que el código sea más conciso, al menos, me gustaría saber las razones por las que no funciona. t trabajo.Asignar una expresión lambda utilizando el operador condicional (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);
Gracias por su prontitud rich.okelly, Nikhil Agrawal, Romain Verdier y Alex! Todas sus respuestas fueron correctas (compilar y dar el resultado correcto), pero mi elección va a rich.okelly debido a su explicación. –