При назначении метода типу Func
я получаю сообщение об ошибке компиляции Тип условного выражения не может быть определен, потому что не существует неявного преобразования между «группой методов» и «группой методов»
.
Это происходит только с ? :
оператор. Код:
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 actionWorks;
if (which) actionWorks = One; else actionWorks = Two;
// Compilation error on the part "One : Two"
Func action = which ? One : Two;
}
}
Я нашел некоторую информацию о ко- и контравариантности, но я не понимаю, как это применимо к ситуации выше. Почему это не работает?