Как вызвать переопределенный метод с перегрузками?

У меня есть следующий простой код

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 являются общедоступными, и я хочу, чтобы пользователи могли вызывать оба метод?

7
задан Cœur 12 August 2017 в 05:47
поделиться