У меня есть базовый класс:
abstract class ClassPlugin
{
public ClassPlugin(eGuiType _guyType)
{
GuiType = _guyType;
}
public eGuiType GuiType;
protected void Notify(bool b)
{
...
}
protected virtual void RaiseAction()
{
Notify(false);
}
}
а затем у меня есть несколько производных классов:
class ClassStartWF : ClassPlugin
{
public ClassStartWF(eGuiType _guyType) : base(_guyType) { }
public event delegate_NoPar OnStartWorkFlow_Ok;
public void Action()
{
Notify(true);
RaiseAction(eEventType.OK);
}
public new void RaiseAction(eEventType eventType)
{
base.RaiseAction();<--------------------
if (OnStartWorkFlow_Ok == null)
MessageBox.Show("Event OnStartWorkFlow_Ok null");
else
OnStartWorkFlow_Ok();
}
}
}
теперь в действии повышения я должен вызывать перед методом base.RaiseAction(), но об этом можно забыть. Есть ли способ автоматически вызывать базовый метод (и выполнять там какие-то действия) перед вызовом производного метода?
new
вместо переопределенияRaiseAction
? Это странный подход. - person Jon Skeet   schedule 01.07.2016