【发布时间】:2012-04-02 17:57:10
【问题描述】:
我有以下简单的代码
abstract class A
{
public abstract void Test(Int32 value);
}
class B : A
{
public override void Test(Int32 value)
{
Console.WriteLine("Int32");
}
public void Test(Double value)
{
Test((Int32)1);
}
}
当我运行此代码时,由于无限递归,Test((Int32)1) 行会导致堆栈溢出。我发现正确调用正确方法(带整数参数)的唯一可能方法是
(this as A).Test(1);
但这对我来说不合适,因为两个方法 Test 都是公开的,我愿意用户能够调用这两个方法?
【问题讨论】:
标签: c# overriding overloading