Здравствуйте, 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".