Почему закомментированная строка не компилируется? Похоже, что компилятор должен иметь возможность определить сигнатуру метода без какой-либо двусмысленности.
public class Program {
static string A(int x) => $"a{x}";
static string B(int x) => $"b{x}";
public static void Main() {
var a = A;
var b = B;
// Console.WriteLine((true ? A : B)(34)); // this does not work
Console.WriteLine((true ? a : b)(34)); // this does
}
}
Подробнее здесь: https://stackoverflow.com/questions/784 ... o-a-method