Назначьте лямбда-выражение, используя условный (троичный) оператор [duplicate]

This question already has an answer here:

How can I assign a Func<> conditionally between lambdas using the conditional ternary operator? 3 answers

Я пытаюсь использовать условный (троичный) оператор, чтобы назначить правильное лямбда-выражение переменной, в зависимости от условия, но я получаю ошибку компилятора:Type of conditional expression cannot be determined because there is no implicit conversion between 'lambda expression' and 'lambda expression', Я могу использовать обычное if-else для решения этой проблемы, но условный оператор имеет больше смысла для меня (в этом контексте), сделает код более лаконичным и добавить, по крайней мере, я хотел бы знать причины, по которым он не & & apos; т работа.

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

Ответы на вопрос(4)

Ваш ответ на вопрос