我有一个要求,我有一个类和一个函数
public class BaseClass
{
public virtual int MyMethod(int n)
{
Console.WriteLine("BaseClass=" + n + "+" + 2);
return n + 2;
}
}
和派生类b 我在哪里扩展基类函数
public class A : BaseClass
{
public override int MyMethod(int n)
{
Console.WriteLine("Class A=" + n+"*"+2);
return n*2;
}
}
在我调用函数A.MyMethod()时的派生类中 应该执行基函数,然后执行派生类函数。
static void Main(string[] args)
{
A classA = new A();
A.MyMethod(1);
Console.ReadKey();
}
有可能吗?
答案 0 :(得分:0)
你的意思是你想从派生的构造函数中调用基础构造函数?是的,您可以使用base()构造。
public Derived(int sides)
: base(sides)
当Square()实际上不是构造函数(它在你的问题中,没有返回类型或void)而是一个方法时,你可以这样做:
public override returntype Foo(...)
{
// your adaptation
base.Foo(...)
基类中的方法必须是虚拟的,才能使其正常工作。
答案 1 :(得分:0)
class b: a
{
public new int Square(int n)
{
var baseResult = base.Square(n);
var i = 0//extenting the code
return i;
}
}