c#虚方法

Tom*_*mas 1 c# virtual class

我有基类和Execute虚方法.我重写派生类中的execute方法.是否可以在此类流程中执行虚拟方法代码?

  1. 虚拟基本方法代码执行
  2. 重写的方法代码执行
  3. 虚拟基本方法代码执行

不确定我是否已经解释好一切,但我希望得到我的问题的解释:)

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)

Jon*_*eet 9

不,你想要模板方法模式:

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)