Здравствуйте, SilverCloud, Вы писали:
SC>В чём глубокий смысл сабжа в C#?
Вроде конструктор по умолчанию (без параметров) наследуется, если он не определён явно в наследнике. MSDN:
If a class contains no instance constructor declarations, a default instance constructor is automatically provided. That default constructor simply invokes the parameterless constructor of the direct base class.
А прочие... видимо, такое поведение было добавлено для лучшего контроля интерфейса класса (всегдя надо явно указывать все конструкторы класса кроме того, что по умолчанию) + видимо, решили, что так программисты будут допускать меньше ошибок "по недосмотру" (не будет возникать ситуаций, когда при добавлении нового конструктора в базовом классе он чудесным образом появится во всех наследниках, как в C++).
В общем-то, конструктор — не просто метод, конструктор инициализирует состояние объекта — логично, что базовый класс не может корректно проинициализировать своих наследников, поэтому каждый класс должен явно декларировать все свои конструкторы, даже если они просто вызывают base().
Всё изложенное выше — моё глубочайшее имхо.