0 / 0 / 0
Регистрация: 01.10.2010
Сообщений: 5
|
|
1 | |
Создание объектов дочерних классов01.10.2010, 01:05. Просмотров 7740. Ответов 15
Метки нет Все метки)
(
Допустим у меня есть класс Parent. И есть дочерние классы ChildA, ChildB, ChildC. Есть функция в которой в зависимости от того какой параметр я туда подам создается объект одного из дочерних классов и потом этот объект возвращается. Какого именно класса объект заранее неизвестно - только на этапе выполнения. Как сделать без всяких ифов и свитчей, чтобы генерился определенный дочерний объект и потом возвращался из функции? Какой дополнительный параметр передавать в функцию для этого? Думал через generics замутить, но что-то так и не вышло.
P.S. Я являюсь только клиентом этих дочерних и родительских классов. Править реализацию и интерфейсы не могу.
0
|
|
01.10.2010, 01:05 | |
Универсальный конструктор для дочерних классов Ошибка в наследовании: как вызвать функции дочерних классов
__________________
15
Помогаю в написании курсовых работ и дипломов здесь. Записывайтесь на профессиональные курсы С#-разработчиков |
|
Padawan
473 / 323 / 30
Регистрация: 30.01.2010
Сообщений: 1,842
|
|
01.10.2010, 01:14 | 2 |
Создай перегруженную версию фукнции создания дочерних классов.
0
|
1483 / 631 / 62
Регистрация: 31.03.2009
Сообщений: 2,035
|
|
01.10.2010, 01:23 | 3 |
Так есть функция или ты только собираешься её написать?
0
|
0 / 0 / 0
Регистрация: 01.10.2010
Сообщений: 5
|
|
02.10.2010, 02:40 [ТС] | 4 |
Хм функция есть, но задачу по созданию дочерних объектов она не выполняет. На данный момент она создает только родительский объект.
Как генерировать динамически объект на основании информации о его классе(будь то строка "ChildA", или сам экземпляр класса). И затем хотелось бы использовать этот объект в качестве экземпляра именно того класса что я указал при создании(все той же строкой или еще каким-либо образом). Добавлено через 45 секунд То есть это невозможно сделать?
0
|
1483 / 631 / 62
Регистрация: 31.03.2009
Сообщений: 2,035
|
||||||
02.10.2010, 02:49 | 5 | |||||
0
|
0 / 0 / 0
Регистрация: 01.10.2010
Сообщений: 5
|
|
04.10.2010, 01:04 [ТС] | 6 |
Но в итоге я получаю объект Parent. А надо определенный Child. Допустим чтобы потом добавить его generic коллекцию. Допустим List.
0
|
1483 / 631 / 62
Регистрация: 31.03.2009
Сообщений: 2,035
|
|
04.10.2010, 01:05 | 7 |
Поржал, спасибо. А коллекция каких объектов будет? Почему не объектов класса Parent?
0
|
0 / 0 / 0
Регистрация: 01.10.2010
Сообщений: 5
|
|
04.10.2010, 09:18 [ТС] | 8 |
Коллекция будет не одна: столько сколько классов чилдов столько и коллекций для них.
Потому что есть только коллекции чилдов. Добавлять можно только в них.
0
|
1483 / 631 / 62
Регистрация: 31.03.2009
Сообщений: 2,035
|
||||||
04.10.2010, 10:10 | 9 | |||||
Ты заставляешь меня плакать
![]() А на основании каких данных решается, в какую коллекцию помещать очередного чилда? И как это происходит?
![]()
0
|
962 / 765 / 171
Регистрация: 12.04.2009
Сообщений: 1,700
|
||||||
04.10.2010, 11:04 | 10 | |||||
0
|
1483 / 631 / 62
Регистрация: 31.03.2009
Сообщений: 2,035
|
|
04.10.2010, 11:38 | 11 |
0
|
0 / 0 / 0
Регистрация: 01.10.2010
Сообщений: 5
|
|
06.10.2010, 01:19 [ТС] | 12 |
Думал что можно как-то по красивому решить данную задачу. Но указывать коллекции вроде как все равно придется явно. Поэтому вопрос отпадает.
0
|
51 / 44 / 4
Регистрация: 07.10.2010
Сообщений: 95
|
|
07.10.2010, 09:05 | 13 |
interface IPArent;
class Parent : IPArent {} class A : Parent , IPArent{} class B : Parent , IPArent{} static class ParentCollection { }
0
|
52 / 52 / 10
Регистрация: 25.05.2010
Сообщений: 182
|
|
07.10.2010, 09:57 | 14 |
это стандартный пример на паттерн фабрики, почитайте доки, всё уже придаманно
0
|
51 / 44 / 4
Регистрация: 07.10.2010
Сообщений: 95
|
|||||||||||
07.10.2010, 10:46 | 15 | ||||||||||
Блин, и куда делось исправление
0
|
Мохаммед Али
131 / 69 / 5
Регистрация: 14.08.2009
Сообщений: 916
|
|
07.10.2010, 11:26 | 16 |
как я понял здесь нужно заюзать индекацию) чтобы при генерации обьектов получилось что то ттипа
КлассРодитель РО=нью КлассРодитель(); РО[подкласс].обьект ... юзаем, но здесь обьекты должны быть созданы уже в самой структуре класса.
0
|
07.10.2010, 11:26 | |
Заказываю контрольные, курсовые, дипломные работы и диссертации здесь или здесь. DataContract для дочерних классов Foreach дочерних объектов Canvas из UserControl
Создание ленты вкладок дочерних форм
Сериализация объектов классов Pen и Brush Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |