Здравствуйте, Serginio1, Вы писали:
S>Ну мы то генерим для новой структуры все методы предка. Ничего не модифицируем. Мы мо
Конструктор потомка у нас уже есть, и он уже падает с ошибкой компиляции.
S>>Далее, если мы попробуем делать какие-то ещё приседания на воображаемом будущем АПИ расширения компилятора: в предке нет никакого тела конструктора. Точно ли мы хотим дописать в конструктор потомка _a = default(), подразумевая семантику Child(int b) : base()?
S>>Что делать, если в предке определён параметризованный конструктор?
S> Ну копируем тело конструктора предка. О чем я и писалю
Давайте проделаем этот мысленный эксперимент на практике:
[Inherits(typeof(Parent))]
public partial struct Child
{
private int _b;
public int GetB() = >_b;
public Child(int b) => _b = b;
{
_b = b;
_a = a; // error CS0103: The name 'a' does not exist in the current context
}
}
Упс! Тело конструктора предка нам ничем не помогает.
S>>Возникает вопрос: а что за сценарий у нас такой, где нужны именно структуры, и именно наследование?
S> Ну как раз есть у нас Дженерик тип, но хочется сделать расширение для конкретного типа.
S>Для класса просто наследуемся от Account<T>, для расширения для конкретного типа
Это прекрасно — но со структурой-то какой сценарий? Почему вам нужна именно структура, а не класс со всеми его преимуществами?