基本クラスのコンストラクタを呼び出す場合、C# では以下のように書きます。
class 基本クラス {
public 基本クラス(int a) {
いろいろ初期化(a):
}
}
class 派生クラス : 基本クラス {
public 派生クラス() : base(1) {
初期化();
}
}
上記の base によって、基本クラスのコンストラクタが実行されるため、基本クラスの「いろいろ初期化」が実行された後に、派生クラスのコンストラクタがに実行され「初期化」が実行されます。
VB.NET では、MyBase.New() を派生クラスのコンストラクタから呼べば良いようです。
Public Class 基本クラス
Public Sub New(ByVal A As Integer)
いろいろ初期化(a)
End Sub
End Class
Public Class 派生クラス : Inherits 基本クラス
Public Sub New()
MyBase.New(1)
初期化()
End Sub
End Class
ってことは、VB.NET の場合は、次のように書くこともできるということなのでしょうか?
Public Sub New()
初期化()
MyBase.New(1) 'あとから基本クラスのコンストラクタを呼んでみる。
End Sub
不思議
な気がしますね。
実際に試してみたら、
「エラー コンストラクタの呼び出しは、インスタンス コンストラクタ内の最初のステートメントとしてのみ有効です。 」
だそうです・・・