调用基于继承的方法调用也会返回吗?

时间:2009-09-07 17:15:39

标签: c# asp.net

说我的基本方法如下:

public int GetCount() {.....}

现在我继承了GetCount的类,并执行:

public new int GetCount()
{
  int count = base.GetCount();

  count += 1;


  return count;

}

调用base.GetCount()会在增量之前返回吗? (这似乎是我正在经历的)

4 个答案:

答案 0 :(得分:5)

不,不会。调用base.Count与从方法返回相比没有任何其他方法调用。

在正常的C#方法中(不包括迭代器和异常进程终止),只有3种方法可以留下方法

  • 明确要求回复
  • 执行超出了void返回方法的代码路径中的最后一条指令
  • 在函数或被调用函数中抛出的异常到达当前方法并且未处理

答案 1 :(得分:2)

不,为什么要归还?那里没有退货声明。确保你没有错误地调用基本方法。可能向我们展示调用它的代码有帮助。如果你这样称呼它:

Base b = new Derived();
int result = b.GetCount();

你正在调用基本方法。

答案 2 :(得分:1)

您的基类方法应该是虚拟的,否则您的子类方法将不会被调用。

public virtual int GetCount() {.....}

子类,override而不是new

public override int GetCount()
{
  int count = base.GetCount();

  count += 1;


  return count;

}

答案 3 :(得分:0)

使基本方法成为虚拟(如果可能),然后改为覆盖它。