Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

Filkolev avatar Filkolev 4482 Точки
Best Answer

Не разбирам точно какво искаш да постигнеш.

Имаш някакви обекти тип компютър и обекти тип компонент. Те са независими едни от други, т.е. един компонент може да го добавиш към кой да е компютър. Това обаче няма как да стане автоматично при инстанциирането на компонента. Трябва изрично да кажеш "създавам компонент с тия параметри" и след това "този компонент е част от този компютър". Ако инстанциираш компонент, трябва ти да кажеш към кой компютър да го добавиш (ако искаш въобще да го добавиш, може да има случаи, в които не искаш).

Примерно (може да се подават и някакви данни на конструкторите, за простота приемам, че има празни такива):

Computer pc = new Computer();

Component component = new Component();

pc.AddComponent(component);

Може и по-кратко ако нямаш необходимост да пазиш референция към компонента:

pc.AddComponent(new Component());

Двете неща са аналогични, създаваш компонент и го добавяш към компютъра; разликата е, че във втория вариант нямаш променлива, която да пази компонента.

Няма обаче как да създадеш компонент и магически той сам да се добави някъде. Или ако достигнеш такъв вариант - най-вероятно правиш нещо грешно и нарушаваш поне един принцип на ООП.

Добавка: Може при инстанцииране на компютъра ръчно да му напълниш списъка с т.нар. object initializer, например:

Computer pc = new Computer { Components = new List<Component> {new Component(), new Component() ... }};

Това обаче е малко в разрез с начина, по който си задал въпроса си, защото тук при инстанцирането на компютър се създават и компонентите му, а не впоследствие на създаден компютър да се добавя новосъздаден компонент.

2
22/11/2015 13:30:59
msmilkoff avatar msmilkoff 338 Точки

Да разбрах, просто му казах pc.Components = new List<Component>();   и след това ги добавих.

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.