какой перегруженный метод он будет использовать? - PullRequest
0 голосов
/ 27 марта 2012

например у нас есть

     BaseClass myBaseObject
     InheritedClass myInheritedObject

и 2 перегруженных метода

     void Do(BaseClass tmp)
        { DoA();}
     void Do(InheritedClass tmp)
        { DoB();}

Что бы это сделать?

     Do((BaseClass) myInheritedObject);

И является ли распространенной техникой помещение DoA() в BaseClass, DoB() в InheritedClass, переопределение DoA() и объединение 2 Do() в 1?

        void Do(BaseClass tmp)
           {return tmp.DoA()}

1 Ответ

2 голосов
/ 27 марта 2012

Первое - вторая перегрузка неприменима, поскольку тип аргумента во время компиляции - BaseClass вместо InheritedClass, и неявное преобразование из BaseClass в InheritedClass.

...