2

このジェネリックメソッドがあるとします

void ActivateView<T>(ViewCommand command) where T : IPresenter
{
    //code
}

そして、私は次のような行動をとっています:

Action<ViewCommand> action = this.ActivateView<DiagnosticPresenter>;

では、ジェネリックactionメソッドの型引数を知るにはどうすればよいActivateViewでしょうか。この場合、 である必要がありますDiagnosticPresenter。だから私は次のようにType等しいインスタンスを期待していますtypeof(DiagnosticPresenter):

Type type = Magic(action); //what should Magic do?
if ( type == typeof(DiagnosticPresenter))
{
    //I want to do something here!
}

それは可能ですか?どのように実装すればよいMagic()ですか?

4

1 に答える 1

3

これは私にとってはうまくいくようです:

public Type Magic(Action action)
{
    return action.Method.GetGenericArguments().First();
}
于 2012-07-25T13:07:21.510 に答える