I would like to explain main problem with example.
public class BaseClass
{
public virtual void Add()
{
Console.WriteLine("Add call from BaseClass");
}
public virtual void Edit()
{
Console.WriteLine(" Edit call from BaseClass");
this.Get();
}
public virtual void Get()
{
Console.WriteLine(" Get call from BaseClass");
}
}
public class DerivedClass:BaseClass
{
public override void Add()
{
Console.WriteLine(" Add call from DerivedClass");
base.Edit();
}
public override void Edit()
{
Console.WriteLine(" Edit call from DerivedClass");
}
public override void Get()
{
Console.WriteLine(" Get call from DerivedClass");
}
}
And called like
DerivedClass d = new DerivedClass();
d.Add();
The result :
- Add call from DerivedClass
- Edit call from BaseClass
- Get call from DerivedClass
But I want to get the result as :
- Add call from DerivedClass
- Edit call from BaseClass
- Get call from BaseClass
When derived class calls its own Add method, Add method calls base class EDit method. When base class edit method called from derived class it calls get method of the derived class. but I want to call base class's get method. How can I achieve this?