0

我希望能够在另一种方法中指定一种方法。

就像是

public class Binder
{
    public void Bind(whatShouldIWriteHere?)
    {
        // do stuff with the MethodInfo
    }
}

这样我就可以做到:

public class A
{
    public void DoIt(string tmp)
    {
    }
}

var binder = new Binder()
binder.Bind<A>(x => x.DoIt);

代替:

var method = typeof(A).GetMethod("DoIt");
binder.Bind(method);

那可能吗?:)

4

1 回答 1

2

将方法作为委托传递并使用 Delegate.Method 属性。

在您的情况下,Binder.Bind 就像:

public void Bind(Delegate del)
{
    var info = del.Method;
    //Add your logic here.
}

并将方法传递给它:

var binder = new Binder();
var instance = new A();
binder.Bind(new Action<string>(instance.DoIt))
于 2012-12-14T17:59:43.710 回答