C# 基于继承方法调用的调用是否也会返回?

C# 基于继承方法调用的调用是否也会返回?,c#,asp.net,C#,Asp.net,假设我的基本方法如下所示: public int GetCount() {.....} 现在我从GetCount的类继承,并执行以下操作: public new int GetCount() { int count = base.GetCount(); count += 1; return count; } 调用base.GetCount会导致在增量之前返回吗?这似乎就是我正在经历的不,为什么它会回来?那里没有返回语句。确保没有错误地调用基方法。可能向我们展示调用它的代码

假设我的基本方法如下所示:

public int GetCount() {.....}
现在我从GetCount的类继承,并执行以下操作:

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

  count += 1;


  return count;

}

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

不,为什么它会回来?那里没有返回语句。确保没有错误地调用基方法。可能向我们展示调用它的代码会有所帮助。如果您这样称呼它:

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

您正在调用基本方法。

不,它不会。就从方法返回而言,调用base.Count与任何其他方法调用没有什么不同

在不包括迭代器和异常进程终止的普通C方法中,只有3种方法可以保留一个方法

显式返回调用 对于void返回方法,执行超出了代码路径中的最后一条指令 在函数或被调用函数中引发的异常到达当前方法并未处理
如果可能的话,将基类方法设置为虚拟,然后重写它。

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

public virtual int GetCount() {.....}
子类,重写而不是新建:

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

  count += 1;


  return count;

}