重写方法执行后,是否可以从基类引发事件?

时间:2018-12-04 18:07:31

标签: c# oop events

我目前正在为几个将来的对象编写一个基类,这些对象将具有Load方法。基类有一个virtual方法,用于派生到override的类,因此我可以为基类型的所有对象调用Load方法。一种简单的做法,但是我想在Loaded实现完全执行后引发一个LoadCompletedoverride事件。

我已经考虑过创建一个像这样的结构:

public void Load() {
    DoLoad();
    Loaded?.Invoke(this, new EventArgs());
}
protected virtual void DoLoad() {
   ...
}

但是,我希望有一个比这更优雅的解决方案,因为我真的不希望同一方法的publicprotected版本。就我而言,这很乏味,因为目前有28种不同的方法需要执行这种执行模式,这使我总共有56种方法可以覆盖事件。

这很简单,如果我可以强迫base.Loadoverride的末尾,那是不可能的,说实话,它可以在override的任何地方出现因此,因此,命名可能必须更改为Loading或类似名称。


有没有一种方法可以用一个方法而不是两个方法来完成?

0 个答案:

没有答案