次の状況を検討してください -
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を使用できますか?
ありがとう。