【发布时间】:2014-02-13 23:45:18
【问题描述】:
考虑下一种情况 -
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 在派生类中时检查,而不是抽象的舒尔):
InvokeX(IParametr @param){
((dynamic) this).X((dynamic) @param);
}
但我正在寻找更快的解决方案。我可以以某种方式使用 System.Runtime.CompilerServices 命名空间,特别是 CallSite Class?
谢谢。
【问题讨论】:
标签: c# reflection abstract-class invokemember