在我的抽象类中,我可以监听抽象方法并在调用该方法时触发事件吗?如果是的话怎么样?
答案 0 :(得分:3)
答案 1 :(得分:3)
执行此操作的最佳方法如下:
public abstract class MyClass {
public void DoOuter() {
FireEvent();
DoInner();
}
protected abstract void DoInner();
}
当有人想要调用doInner时,他们必须调用DoOuter()
才能执行它。要指定覆盖DoInner()
的功能。所以FireEvent()
总是在指定任何DoInner()
功能之前被调用...除非它被子类直接调用,你无法真正防范它。
答案 2 :(得分:2)
实际上并不总是覆盖抽象方法,并且无法保证覆盖调用base.Method()
来实现它。
您最好的办法是创建一个虚拟方法来引发事件,然后将所有覆盖调用base.Method()
如果您想拦截方法调用,here是一个关于如何执行此操作的问题。