大多数情况下,C#委托已将对象与成员函数一起存储起来非常方便.但有没有办法,存储 - 并作为参数传递 - 只有成员函数本身,就像C++中的旧指针指向成员函数一样?
如果描述不清楚,我给出一个自包含的例子.并且,是的,在示例中,传递成员函数的坚持是完全没有意义的,但我有更严肃的用途.
class Foo {
public int i { get; set; }
/* Can this be done?
public static int Apply (Foo obj, ???? method, int j) {
return obj.method (j);
}
*/
public static int ApplyHack (Foo obj, Func<int, int> method, int j) {
return (int) method.Method.Invoke (obj, new object [] { j });
}
public static readonly Foo _ = new Foo (); // dummy object for ApplyHack
public int Multiply (int j) { …Run Code Online (Sandbox Code Playgroud) c# ×1