Скрыть метод базового класса в универсальном производном классе

У меня есть базовый класс, как это:

class FooBase
{
    public bool Do(int p) { /* Return stuff. */ }
}

И детский класс, как это:

class Foo<T> : FooBase
{
    private Dictionary<T, int> Dictionary;

    public bool Do(T p)
    {
        int param;
        if (!Dictionary.TryGetValue(p, out param))
            return false;
        return base.Do(param);
    }
}

Если пользователь создаетFoo<string> объект называется "fooString", тогда он может вызвать обаfooString.Do(5) а такжеfooString.Do("test") но если он создаетFoo<int> объект называется "fooInt", он может вызывать только метод Do производного класса. Я предпочитаю второе, независимо от того, чтоT является.

Методы Do в обоих этих классах по сути делают одно и то же. Тот, что в производном классе, получает целое число отDictionary<T, int> используя данный параметр и вызывает метод Do базового класса, используя его.

Вот почему я хочу скрыть метод DoFooBase вFoo<T>, Как я могу добиться этого или что-то подобное? Любой совет дизайна, чтобы преодолеть это также было бы хорошо.

Ответы на вопрос(2)

Ваш ответ на вопрос