Здравствуйте, Codealot, Вы писали:
C>есть внятные объяснения?
Явное наследование через base() есть.
Если сделать неявное, получается борода:
1. Возьмем 3 сборки:
* ParentAssembly с ParentClass(int x)
* ChildAssembly с ChildClass(int x) : base(x), сгенерированный компилятором
* UserAssembly, создающую ChildClass.
2. Меняем в ParentAssembly int x -> string x.
3. Пересобираем ParentAssembly и ChildAssembly. Все собралось без ошибок и зарелизилось.
4. Где-то в другой временной зоне громко ругается разработчик UserAssembly, который начал вываливаться с MethodNotFoundException.
Явное определение конструкторов (которое на раз генерируется IDE) это предотвращает — ChildAssembly выдаст ошибку на этапе компиляции, разработчик вспомнит, что это public API и откатит все взад.
Если очень надо и часто меняются параметры — сделай wrapper class, как с EventArgs.