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 に答える