自分のコンストラクターを呼び出した後、基本クラスのコンストラクターを呼び出すにはどうすればよいですか?
x
問題は、基本クラスのコンストラクターが、サブクラスのコンストラクターで初期化されたvariable にアクセスする必要がある抽象メソッド (サブクラスでオーバーライドされる) を呼び出すことです。
短いコード例:
abstract class BaseClass
{
protected string my_string;
protected abstract void DoStuff();
public BaseClass()
{
this.DoStuff();
}
}
class SubClass : BaseClass
{
private TextBox tb;
public SubClass()
: base()
{
this.my_string = "Short sentence.";
}
protected override void DoStuff()
{
// This gets called from base class' constructor
// before sub class' constructor inits my_string
tb.Text = this.my_string;
}
}
編集:回答に基づいて、明らかに不可能です。this.DoStuff();
作成されたすべてのオブジェクトを自動的に呼び出す方法はありSubClass
ますか? もちろんthis.DoStuff();
、サブクラスのコンストラクターの他のすべての行の後に追加することもできますが、これらのクラスが約 100 あると、ばかげているように感じます。他の解決策、または手動の解決策を使用する必要がありますか?