1

次の状況を検討してください -

public class Derived : Base{
   X(ParamX){}   // xx method
   X(ParamY){}   // xy
}

public abstract class Base {
   InvokeX(IParametr param){
      ...some magic
   }
}

public class ParamX : IParametr {}
public class ParamY : IParametr {}

Derived.InvokeX(ParamX)を使用して xx メソッドを呼び出すことはできますか?

私はこのようなことができることを知っています(InvokeXが派生クラスにあるときにチェックされ、abstractのシュアではありません):

InvokeX(IParametr @param){
    ((dynamic) this).X((dynamic) @param);
}

しかし、私はもっと速い解決策を探しています。何らかの方法で System.Runtime.CompilerServices 名前空間、特にCallSite Classを使用できますか?

ありがとう。

4

1 に答える 1