|
Как преобразовать родительский класс в дочерний?
|
|||
---|---|---|---|
#18+
Здравсвуйте! Код: c# 1. 2. 3.
Код: c# 1. 2.
как это исправить? пасиб ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2012, 13:31 |
|
Как преобразовать родительский класс в дочерний?
|
|||
---|---|---|---|
#18+
Код: c# 1.
описался, там так конечно))) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2012, 13:36 |
|
Как преобразовать родительский класс в дочерний?
|
|||
---|---|---|---|
#18+
бряхня :) что пишет аглицкими буквами? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2012, 13:44 |
|
Как преобразовать родительский класс в дочерний?
|
|||
---|---|---|---|
#18+
Вы и с примером ошиблись downcasting рученьками :) http://www.codeproject.com/Articles/34105/Convert-Base-Type-to-Derived-Type ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2012, 14:00 |
|
Как преобразовать родительский класс в дочерний?
|
|||
---|---|---|---|
#18+
mischa897, В процедурке ожидается тип P. В list как раз они и хранятся. Ничего преобразовывать не надо. А уже в самой процедурке можно проверить тип объекта, и преобразовать P в A. Код: c# 1. 2. 3. 4.
Наоборот преобразовать не выйдет. Ведь в классе-наследнике могут быть добавлены новые поля, новый функционал, а память выделяется под тип класса-предка. Можно написать свой конвертор из А в P, и явно его вызывать, тогда у компилятора не будет вопросов- разработчик берет на себя ответственность по преобразованию (если он решил, что оно возможно). PS. Таких функций, с проверкой внутри них типа передаваемого объекта, можно избежать, при желании. Создайте виртуальную функцию f в классе P, и переопределите ее в классе A. После чего можете свободно заполнять список List<P> list объектами обоего типа, и просто вызывать метод f в цикле, тогда не придется делать проверки на тип, а каждый объект будет вызывать свою виртуальную функцию. Могу порекомендовать почитать http://www.ozon.ru/context/detail/id/1308678/ Раздел 3, "Операторы типа switch" ... |
|||
:
Нравится:
Не нравится:
|
|||
30.10.2012, 16:08 |
|
|
start [/forum/topic.php?fid=20&fpage=190&tid=1405730]: |
0ms |
get settings: |
13ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
15ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 149ms |
0 / 0 |