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

更新 : 2007 年 11 月

クラス コンストラクタが基本クラスのコンストラクタを明示的に呼び出しておらず、暗黙の基本クラスのコンストラクタが、ObsoleteAttribute 属性として、またディレクティブによりエラーとして処理するようマークされています。

派生クラスのコンストラクタが基本クラスのコンストラクタを呼び出していないときは、Visual Basic は、パラメータなしの基本クラス コンストラクタに対する暗黙的な呼び出しを生成しようとします。その基本クラスの中に、引数なしで呼び出されるアクセス可能なコンストラクタがない場合は、Visual Basic が暗黙的な呼び出しを生成できません。この場合、必要なコンストラクタが ObsoleteAttribute 属性でマークされているため、Visual Basic から呼び出すことができません。

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

Error ID: BC30920

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

  1. 二重引用符で囲まれたエラー メッセージを確認し、適切なアクションを実行します。

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

参照

概念

Visual Basic で使用される属性

属性の適用