Я думаю это как-то связано со всей дисперсией, но я не совсем понимаю, почему это не разрешено.
У меня есть метод
public void method(Func<Enum, String> func)
И у меня есть несколько разных методов, таких как
public String doSomething(someEnum)
public String doSomethingElse(someOtherEnum)
Я хочу сделать такие вызовы
method(doSomething)
method(doSomethingElse)
, но я получаю эти ошибки
преобразовать из 'группы методов' в System.Func<System.Enum,string>
По какой причине это невозможно сделать?Мне действительно нужно переписать метод в несколько таких методов?
public void method(Func<someEnum, String> func)
public void method(Func<someOtherEnum, String> func)
Это действительно ужасно.
edit:
Я хочу сделать что-то подобное в методе(обратите внимание, в моем действительном коде enumType также передается как Type)
foreach (Enum val in Enum.GetValues(enumType))
{
func(val);
}