У меня есть метод со следующей сигнатурой:
void MyMethod(Delegate d){};
void MyMethod(Expression exp){};
void MyMethod(object obj){};
Однако это не скомпилируется:
MyMethod((int a) => a)
со следующей ошибкой:
"Cannot convert lambda expression to type 'object' because it is not a delegate type"
Почему это не работает?
Изменить: я знаю, что это работает. В этом случае компилятор компилирует лямбда-выражение в delgate.
void MyMethod(Func<int, int> d){};
С уважением,