Здравствуйте, Serginio1, Вы писали:
S>Кстати нет наследования структур. Сейчас с source generator упрощается расширение классов.
Это палка о двух концах.
Отсутствие наследования означает, что код можно делать очень эффективным — например, везде, где мы используем структуру хоть бы и по ссылке, нам известен точный тип.
Помимо раскладки полей (которую при наследовании можно сделать совместимой с предком), это позволяет не бегать по VMT при вызове методов.
Частным случаем является многократно упомянутый в этой же дискуссии трюк с параметризацией генерика структурным типом, ограниченным интерфейсом.
Таким образом, имеем полиморфизм без штрафов к производительности. S>Хотя всегда можно сделать структуру с полем наследуемой структуры и нагенерить свойства и методы над наследуемой структурой с помощью того же source generator
Так сделать можно, но нельзя будет передать ref Descendant в параметр, где ожидается ref Parent.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.