我目前正在为几个将来的对象编写一个基类,这些对象将具有Load
方法。基类有一个virtual
方法,用于派生到override
的类,因此我可以为基类型的所有对象调用Load
方法。一种简单的做法,但是我想在Loaded
实现完全执行后引发一个LoadCompleted
或override
事件。
我已经考虑过创建一个像这样的结构:
public void Load() {
DoLoad();
Loaded?.Invoke(this, new EventArgs());
}
protected virtual void DoLoad() {
...
}
但是,我希望有一个比这更优雅的解决方案,因为我真的不希望同一方法的public
和protected
版本。就我而言,这很乏味,因为目前有28种不同的方法需要执行这种执行模式,这使我总共有56种方法可以覆盖事件。
这很简单,如果我可以强迫base.Load
到override
的末尾,那是不可能的,说实话,它可以在override
的任何地方出现因此,因此,命名可能必须更改为Loading
或类似名称。
有没有一种方法可以用一个方法而不是两个方法来完成?