在什么情况下我应该在做:base()和:this() 构造函数调用以下我的构造函数的括号内(甚至在代码的其他地方).这些什么时候称为良好做法,什么时候强制执行?
根据MSDN的构造函数设计指南,
"如果没有在类型上显式声明任何构造函数,许多语言(如C#)将自动添加公共默认构造函数.(抽象类获取受保护的构造函数.)将参数化构造函数添加到类中可防止编译器添加默认构造函数.这通常会导致意外的破坏性更改."
为什么不:
"如果你没有在类型上显式声明任何默认构造函数,那么许多语言(例如C#)将自动添加一个公共默认构造函数.(抽象类获得受保护的构造函数.)"
这背后的原因是什么?