![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 06.09.2008
Сообщений: 17
|
![]()
Есть класс-предок. У него несколько классов потомков.
Создается массив типа "предок", в котором находятся также объекты типа "потомок". Необходимо ко всему массиву применить метод, который должен работать по-разному в зависимости от типа потомка. Как написать? У разных потомках в сигнатуре метода разное количество параметров. Класс предок не абстрактный. Объекты типа предок тоже должны быть в массиве. Метод, который необходимо применить ко всему массиву в общем то нужен только в двух классах потомках. Подскажите как это реализовать? Если просто переопределять метод в потомках, а потом в зависимости от типа объекта в массиве вызывать метод с определенным количеством параметров, компиллятор ругается... Error 1 No overload for method 'move' takes '6' arguments C:\Users\1\Desktop\Ocean\Ocean\Main Form.cs 120 29 Ocean Move и есть тот самый метод. Не понимаю почему эта ошибка возникает... аргументов везде хватает... Заранее спасибо большое... |
![]() |
![]() |
![]() |
#2 | ||
Участник клуба Подтвердите свой е-майл
Регистрация: 19.11.2007
Сообщений: 1,022
|
![]()
Вот тебе пример полиморфизма:
Цитата:
Цитата:
Последний раз редактировалось profi; 13.05.2010 в 21:28. |
||
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 06.09.2008
Сообщений: 17
|
![]()
Это все понимаю...
а если возвращаемых значений несколько? тогда как метод описывать? По идее пишу также... а ошибочка... public void move(...., ref a) просто у меня так... как написать правильно? |
![]() |
![]() |
![]() |
#4 | ||
Участник клуба Подтвердите свой е-майл
Регистрация: 19.11.2007
Сообщений: 1,022
|
![]() Цитата:
Цитата:
![]() |
||
![]() |
![]() |
![]() |
#5 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
![]()
Думаю полиморфизм тут ни при чём. Неплохо бы увидеть ваш код и более конкретные пояснения цели всего этого, возможно это можно сделать как-то проще. Тем не менее, если я вас верно понял, то можно использовать рефлексию для получения информации о том, с объектом какого класса мы имеем дело, приводить его к этому классу и вызывать его метод.
|
![]() |
![]() |
![]() |
#6 | |
Пользователь
Регистрация: 06.09.2008
Сообщений: 17
|
![]() Цитата:
Массив типа океан. Хищники и преграды должны перемещаться(меняться координаты в массиве), для этого написан метод move, где все в принципе прописано. С вызовом метода проблема... Код:
Создается массив oceanMatr Код:
ткните пожалуйста в ошибку... |
|
![]() |
![]() |
![]() |
#7 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
![]()
Мда, с абстракциями не очень вышло ) Едва ли океан можно назвать предком хищника ) Если подобная реализация была вызвана необходимостью передавать всё одним массивом, то в этом нет необходимости, так как у всех классов есть один общий предок - Object. Можно создать массив object'ов и класть туда объекты совершенно разных классов. Кстати, вместо
Код:
Код:
Код:
|
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 06.09.2008
Сообщений: 17
|
![]()
ааа спасибо огромное вам=))
|
![]() |
![]() |
![]() |
#9 | |
Пользователь
Регистрация: 06.09.2008
Сообщений: 17
|
![]() Цитата:
Error 1 'object' does not contain a definition for 'move' C:\Users\Кэт\Desktop\Ocean\Ocean\Ma inForm.cs 120 45 Ocean не подскажите в чем сейчас моя ошибка?) |
|
![]() |
![]() |
![]() |
#10 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
![]()
А тип, как у меня, приводите? )
Код:
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Необязательные параметры метода -как? | boris-blade | Общие вопросы .NET | 2 | 24.03.2010 03:42 |
Вызов метода в asm вставке. | Mixasik | Общие вопросы Delphi | 3 | 20.02.2010 10:42 |
Как определить время работы метода??? | _Studentka_ | Общие вопросы по Java, Java SE, Kotlin | 1 | 22.11.2009 10:43 |
mootools: вызов метода класса в цикле each | toXx | JavaScript, Ajax | 1 | 18.03.2009 19:20 |
Вызов Метода из др. модуля | Mickle | Общие вопросы Delphi | 2 | 10.05.2007 23:41 |