Re: Проблема с циклической ссылкой generic классов
От: _FRED_ Черногория
Дата: 26.06.11 19:23
Оценка:
Здравствуйте, Silentor, Вы писали:

S>Пишу некий фреймворк. Там имеются базовые классы парента BaseParent и чайлдов BaseChild. В паренте я хочу иметь список чайлдов, а в чайлде — ссылку на парента. Пишу через generic'и:

S>public abstract class BaseParent<TChild>
S>        where TChild : BaseChild<BaseParent<TChild>>
S>    {
S>        protected List<TChild> _childs = new List<TChild>();
S>    }

S>public abstract class BaseChild<TParent>
S>        where TParent : BaseParent<BaseChild<TParent>>
S>    {
S>        protected TParent _parent;
S>    }


Вам действительно нужны в базовых классах фреймворка защищённые поля? Вам известен какой-либо [разумный] сценарий, который потребует этого?
Какие конкретно вызовы у "детей" будет делать ваш BaseParent? А "дитё" у родителя? Или это просто так связь, "для наглядности"? Нужно ли в этих вызовах знать чей-либо конкретный тип?

Хорошего "общего" решения вашей проблемы не отыскать, поэтому дополнительные детали позволили бы выбрать оптимальный вариант.

Кстати, child во множественном числе — это children, а не "childs".
Help will always be given at Hogwarts to those who ask for it.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.