我需要能够将任意方法传递给某个函数myFunction
:
void myFunction(AnyFunc func) { ... }
应该可以使用其他静态、实例、公共或私有方法甚至委托来执行它:
myFunction(SomeClass.PublicStaticMethod);
myFunction(SomeObject.PrivateInstanceMethod);
myFunction(delegate(int x) { return 5*x; });
传递的方法可以有任意数量的参数和任何返回类型。还应该可以myFunction
通过反射了解参数的实际数量及其类型。满足这些要求AnyFunc
的定义是什么?myFunction
有几个重载版本是可以接受的myFunction
。