您必须在派生类构造函数的主体之前调用基类构造函数.
class Derived : Base { public Derived(string someParams) : base("Blah " + someParams) { } }
你不能.您可以在之前调用它:
public Derived() : base()
或者你必须使用一个钩子
class Base { protected void init() { } public Base(string sMessage) { init(); } } class Derived : Base { public Derived(string someParams) { string sMessage = "Blah " + someParams; init(); } }
我最初错过了OregonGhost关于使用静态方法修改参数的评论,这对我来说是最有用的,所以我想我会为阅读这个帖子的其他人添加一个代码示例:
class Base { public Base( string sMessage ) { // Do stuff } } class Derived : Base { public Derived( string sMessage ) : base( AdjustParams( sMessage ) ) { } static string AdjustParams( string sMessage ) { return "Blah " + sMessage; } }