Re: почему в C# до сих пор нет наследования конструкторов?
От: Baiker  
Дата: 25.11.22 09:37
Оценка:
Здравствуйте, Codealot, Вы писали:

C>есть внятные объяснения?


Quebecois прекрасно всё объяснил, но скорее с практической точки зрения. Public API не должен меняться вообще, если так по-хорошему.

В теории, смысл такой:

{{ базовый класс
констр 1
констр 2
}}

{{ потомок
констр 3
}}

Когда ты создаёшь класс-потомок, ты наследуешь поведение базы. НО(!) никто не сказал, что базовые конструкторы вообще подходят под конструирование потомка! Если ты ввёл "единственно правильный" констр 3, то юзер класса "потомок" вообще не должен никогда видеть констр 1! Что, собственно, язык и делает. Хочешь "пробросить" конструктор — не вопрос, просто создай его руками.

Что в C# налажали, так это вызов самих конструкторов. Если я правильно ошибаюсь, в Delphi можно вызывать базовый конструктор из любого места текущего конструктора. В C# это возможно только в начале. А может это я с D перепутал.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.