我有基类和Execute虚方法.我重写派生类中的execute方法.是否可以在此类流程中执行虚拟方法代码?
不确定我是否已经解释好一切,但我希望得到我的问题的解释:)
public abstract class ConverterBase
{
public virtual void Execute()
{
try
{
//1. Base class code
// 2. Execute overridden method code.
}
finally
{
//3. Base class code
}
}
}
public class Converter : ConverterBase
{
public override void Execute()
{
//2. code
}
}
Run Code Online (Sandbox Code Playgroud)
不,你想要模板方法模式:
public abstract class ConverterBase
{
public void Execute()
{
try
{
// Stuff
ExecuteImpl();
}
finally
{
// Stuff
}
}
protected abstract void ExecuteImpl();
}
public class Converter : ConverterBase
{
protected override void ExecuteImpl()
{
// Stuff to execute within the parent's try block
}
}
Run Code Online (Sandbox Code Playgroud)