基本クラスに属するオブジェクトの作成に影響を与える、基本クラスで定義されたフィールドが必要です。ただし、 Baseクラスcto'rが呼び出される前に、フィールドの値をオーバーライドできるようにしたいです。例:
class ObjNeedParam
{
public ObjNeedParam(int p)
{
val = p;
}
int val;
int Value{get{return Value;}}
}
class Base
{
public Base()
{
obj = new ObjNeedParam(paramVal);
}
ObjNeedParam obj;
protected int paramVal = 1;
}
class Derived : Base
{
public Derived()
{
//Once I'm here, obj has already been created with paramVal=1 instead of 2!
dummy = 3;
}
new int paramVal = 2;
int dummy;
}