Re[65]: MS забило на дотнет. Питону - да, сишарпу - нет?
От: Sinclair Россия https://github.com/evilguest/
Дата: 09.09.21 13:39
Оценка:
Здравствуйте, 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>, для расширения для конкретного типа
Это прекрасно — но со структурой-то какой сценарий? Почему вам нужна именно структура, а не класс со всеми его преимуществами?
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.