2
我有一个首先需要调用派生类的构造函数调用基构造函数之前类调用。我知道,通过下面的代码基础构造称为第一:反转构造的顺序通过继承构造
public class A {
protected A() {
//do something
}
}
public class B : A {
public B() : base() {
//do something else
}
}
是他们的一种方式扭转这一秩序,或为其解决方法?我们在doConstructor()等基类中创建额外的受保护方法并在第一个任务后在派生构造函数中调用它的可能解决方案不可能是只读字段,因为编译器不会接受它。
模板方法模式 – abhilash 2009-08-26 11:07:04
看起来你正在阅读的代码了我的屏幕; O)我们应该知道,虽然从构造函数,调用虚拟成员通常防止建议。 – 2009-08-26 11:07:15
在基础构造函数('A')中调用虚拟方法有点危险; 'B'的覆盖现在正在** ** B的构造函数之前运行,这可能会导致未初始化字段的问题。我通常会在此建议谨慎,或者更好:一个** post ** - ctor'Initialize'步骤。 – 2009-08-26 11:09:40