Здравствуйте, Serginio1, Вы писали:
S>Хорошо сделать не наследование а копирование. полей и методов.
С одной стороны, звучит как задача для source generators.
То есть помечаем интересные нам структуры атрибутом:
public struct Parent
{
private int _a;
public int GetA() => _a;
}
[Inherits(typeof(Parent))]
public partial struct Child
{
private int _b;
public int GetB() = >_b;
}
И source generator втаскивает в нашу структуру всё подряд из предка, добавляя
public partial struct Child
{
private int _a;
public int GetA() => _a;
}
C другой стороны — начинаются всякие вопросы типа "что делать с конструкторами", т.к. вот такой код будет падать с
CS0171: Field 'C.Child._a' must be fully assigned before control is returned to the caller:
[Inherits(typeof(Parent))]
public partial struct Child
{
private int _b;
public int GetB() = >_b;
public Child() => _b = 0;
}