При назначении метода к типу Func
я получаю ошибку компиляции Type of conditional expression cannot be determined because there is no implicit conversion between 'method group' and 'method group'
.
Это происходит только с оператором ? :
. Код:
public class Test
{
public static string One(int value)
{
value += 1;
return value.ToString();
}
public static string Two(int value)
{
value += 2;
return value.ToString();
}
public void Testing(bool which)
{
// This works
Func<int, string> actionWorks;
if (which) actionWorks = One; else actionWorks = Two;
// Compilation error on the part "One : Two"
Func<int, string> action = which ? One : Two;
}
}
Я нашел некоторую информацию о совместной и контравариантности, но я не вижу, как это относится к ситуации выше. Почему это не работает?