Перегрузка методов при работе с иерархией классов
От: defascat  
Дата: 04.08.04 10:18
Оценка:
Добрый день!!!
В MSDN и на форумах я не нашел рассказа о данной ситуации, может быть Вы
мне поможете. Спасибо.

class A {}

class B : A {}

class C
{
    public virtual void Method(A a);
    public virtual void Method(B b);

// Если передается тип A - вызывается правильный метод Method(A a)
// Если передается тип B - вызывается по прежнему метод Method(A a)
// А нужно чтоб вызывался Method(B b)! Как это сделать?
// Явное приведение типов вроде Method((B)obj); не устраивает, так как пронаследованных 
// классов - куча

    void Work(Type type)
    {
        A obj = (A)Activator.CreateInstance(type);
        Method(obj);
    }
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.