'<derivedclassname>' の基本クラス '<baseclassname>' にある '<constructorname>' が古い形式に設定されているため、この 'Sub New' の最初のステートメントは、明示的な 'MyBase.New' または 'MyClass.New' への呼び出しでなければなりません。

更新 : 2007 年 11 月

クラスのコンストラクタが基本クラス コンストラクタを明示的に呼び出していません。しかも基本クラスの暗黙のコンストラクタが ObsoleteAttribute 属性でマーク付けされ、ディレクティブでそれをエラーとして扱うように設定されています。

派生クラス コンストラクタが基本クラス コンストラクタを呼び出していないと、Visual Basic はパラメータを持たない基本クラス コンストラクタへの暗黙の呼び出しを生成しようとします。基本クラス内に、引数を指定しないで呼び出すことができるアクセス可能なコンストラクタが存在しない場合、Visual Basic は暗黙の呼び出しを生成できません。このケースでは、そのようなコンストラクタが ObsoleteAttribute 属性でマーク付けされているため、Visual Basic はこれを呼び出すことができません。

ObsoleteAttribute を適用することで、任意のプログラミング要素を使用しない要素としてマークできます。これを行う場合は、属性の IsError プロパティを True または False に設定できます。True に設定した場合、コンパイラは要素を使用する試みをエラーとして扱います。False に設定した場合、または既定値の False を使用した場合、コンパイラは要素を使用する試みに対して警告を発行します。

Error ID: BC30919

このエラーを解決するには

  • MyBase.New() の呼び出し、または MyClass.New() の呼び出しを、派生クラスの Sub New の最初のステートメントとして定義します。

参照

概念

Visual Basic で使用される属性

属性の適用