Я пытаюсь использовать условный (тройной) оператор для назначения правильного лямбда-выражения переменной, в зависимости от условия, но я получаю ошибку компилятора: Тип условного выражения не может быть определен, потому что нет никакого неявного преобразования между "лямбда-выражение" и "лямбда-выражение". Я могу использовать регулярное if-else для решения этой проблемы, но условный оператор имеет больше смысла для меня (в этом контексте), сделает код более кратким, по крайней мере, мне хотелось бы узнать причины, почему это не так, т работы.
// 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);