Asigne una expresión lambda usando el operador condicional (ternario) [duplicado]

Esta pregunta ya tiene una respuesta aquí:

¿Cómo puedo asignar un Func <> condicional entre lambdas usando el operador ternario condicional? 3 respuestas

Estoy tratando de usar el operador condicional (ternario) para asignar la expresión lambda adecuada a una variable, dependiendo de una condición, pero recibo el error del compilador:El tipo de 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 habitual para resolver este problema, pero el operador condicional tiene más sentido para mí (en este contexto), haría que el código fuera más conciso, al menos, me gustaría saber las razones por las que no lo hace. t trabajo

// 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);

Respuestas a la pregunta(4)

Su respuesta a la pregunta