我有基类和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
}
}
答案 0 :(得分:9)
不,你想要template method pattern:
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
}
}
答案 1 :(得分:0)
应该可以在方法中调用base.Execute()
。
更多信息:http://msdn.microsoft.com/en-us/library/hfw7t1ce(v=vs.71).aspx