Два класса: A & B, каждый из которых имеет свойство MyProp.Внесите типизированное ограниченное имущество
Свойство MyProp объекта A может быть только типа A. Свойство MyProp B может быть типа A или B.
Чтобы реализовать это, я подумал о создании интерфейса IBase, содержащего свойство MyProp типа IBase и сделавшего A & B реализовать его.
Проблема в этом случае заключается в том, что A может иметь MyProp типа B, поэтому это не вариант.
Я могу удалить свойство MyProp из интерфейса и создать свойство типа A в A и IBase в B, но я считаю, что это не подходящее решение, потому что оба типа имеют свойство MyProp, которое работает одинаково, поэтому я чувствую, что свойство должно быть обработано выше в иерархии.
Я думал также о родовом абстрактном базовом классе, которые имеют свойство MyProp своего родовой типа, но для типа B общего типа будет бесконечно рекурсивный типом:
ABase<ABase<ABase<...>>>
Есть правильный способ добиться этого в C#?
Edit: изменил имя свойства, так что нет никакой путаницы больше
Я думаю, что вы пытаетесь сделать это множественное наследование, которое запрещено в C# – Sphaso
@Sphaso Когда я говорю о родителе, это имя свойства, а не класс родителя – nkoniishvt
Да, но одно свойство может иметь только один тип. Даже при использовании дженериков вы не можете иметь одно свойство, тип которого ограничен двумя типами. – Sphaso