オブジェクト指向プログラミング (Visual Basic 6.0 ユーザー向け)
更新 : 2007 年 11 月
Visual Basic 6.0 では、オブジェクト指向言語要素がサポートされ、オブジェクトのサポートがライブラリで配布されています。Visual Basic 2008 では、オブジェクト指向プログラミングのサポートが拡張されて、すべての言語プロパティがサポートされています。
概念の違い
以下のセクションでは、Visual Basic 2008 のオブジェクト指向機能を、Visual Basic 6.0 で実装されている該当の機能と比較しています。各機能ごとに詳細なヘルプ ページへのリンクが用意されており、各機能について理解を深めることができます。
アクセス レベル
Visual Basic 6.0 では、Private、Friend、Public、および Static の各キーワードを使用して、宣言された要素のアクセス レベルを設定します。
Visual Basic 2008 では、Private、Friend、Public、および Static の各キーワードに加えて、Protected および Protected Friend という新しいキーワードを使用して、宣言された要素のアクセス レベルを設定します。宣言された要素のアクセス レベルとは、その要素にアクセスするために必要な権限の程度、つまり、その要素に対する読み取りと書き込みの許可がどのようなコードに与えられるかを示します。
詳細については、「Visual Basic でのアクセス レベル」および「Visual Basic におけるスコープ」を参照してください。
属性
Visual Basic 6.0 では、Visual Basic IDE のプロシージャ属性などのツールを通じて、埋め込み属性が限定的にサポートされます。
Visual Basic 2008 では、Attribute は説明的なタグであり、型と型のメンバの宣言ステートメントに注釈を付けることができます。このため、その意味を変更したり、その動作をカスタマイズしたりできます。たとえば、クラス ステートメントとクラス メソッド ステートメントに属性で注釈を付けることができます。
Visual Basic コンパイラなど、ユーザーのアプリケーションや他のアプリケーションは、リフレクションを使用して属性にアクセスし、型と型のメンバの使用方法を判断できます。
属性を使用すると、Visual Basic でアスペクト指向プログラミング (AOP: Aspect Oriented Programming) を実行できます。アスペクトとは、ビジネス ロジックを横断するプログラムの要素です。つまり、プログラムを完成するために必要ですが、必ずしも、プログラムの作成対象であるドメイン固有ではありません。ログや永続性などのアスペクトをビジネス ロジックから分離することが、アスクペクト指向プログラミング パラダイムの目的です。
詳細については、「Visual Basic における属性」、「Visual Basic で使用される属性」、および「属性の一般的な使用方法」を参照してください。
バイナリ互換性
Visual Basic 6.0 では、新規バージョンをコンパイルするときに、Binary Compatibility オプションを使用することによって、以前のバージョンのコンポーネントのクラス識別子とインターフェイス識別子を自動的に保持できます。
Visual Basic 2008 では、Binary Compatibility オプションはサポートされず、バイナリ互換性は属性で実現されます。これにより、クラス識別子とインターフェイス識別子、仮想テーブル オフセット、適切な COM 属性など、コンパイル済みのコンポーネントに格納される情報を直接制御できます。
詳細については、「バイナリ互換性の変更点 (Visual Basic 6.0 ユーザー向け)」を参照してください。
クラス モジュール
Visual Basic 6.0 では、クラスはクラス モジュールで定義されます。1 つのクラス モジュールは、ファイル拡張子が .cls の、特別な種類のファイルに格納されます。
Visual Basic 2008 では、クラスは、クラスの名前とメンバを指定する Class ステートメントで定義されます。Class ステートメントは、ソース ファイルに格納されます。ソース ファイル全体は、プレーンテキストとして表示できます。
複数の Class ステートメントと他の型宣言ステートメントを、1 つのソース ファイルに格納できます。Visual Basic では、ソース ファイルの名前が、ソース ファイルで定義されている Class や型に一致している必要はありません。
詳細については、「Class ステートメント (Visual Basic)」を参照してください。
クラス コンストラクタ メソッド
Visual Basic 6.0 では、Class_Initialize という名前のクラスの Initialize イベント ハンドラを使用して、オブジェクト作成時に実行する必要があるコードを実行します。
Visual Basic 2008 では、1 つまたは複数のコンストラクタをクラスに追加して、コードを実行し、変数を初期化します。コンストラクタは、New という名前で、クラス内のメソッドです。New メソッドをオーバーロードして、同じクラス ステートメント内で New という名前の複数のコンストラクタを提供できます。
詳細については、「New (Visual Basic)」または「コンストラクタとデストラクタの使用方法」を参照してください。
クラス デストラクタ メソッド
Visual Basic 6.0 では、オブジェクト変数と実際のオブジェクトの関連付けを解除するのに、Nothing キーワードを使用します。オブジェクト変数に Nothing 値を割り当てるには、Set ステートメントを使用します。
Visual Basic 2008 では、アプリケーションで作成されるオブジェクトの大部分については、ガベージ コレクタによって、必要なメモリ管理タスクを自動的に実行できます。しかし、アンマネージ リソースでは、明示的なクリーンアップが必要です。最も一般的な種類のアンマネージ リソースは、ファイル ハンドル、ウィンドウ ハンドル、ネットワーク接続などのオペレーティング システム リソースをラップしたオブジェクトです。
アンマネージ リソースをカプセル化するオブジェクトを作成する場合は、そのアンマネージ リソースをクリーンアップするために必要なコードをパブリックな Dispose メソッドという形で提供することをお勧めします。Dispose メソッドを提供すると、ユーザーがオブジェクトを使い終わったときに、そのオブジェクトのメモリを明示的に解放できます。
アンマネージ リソースをカプセル化するオブジェクトを使用する場合は、Dispose メソッドの存在を念頭に置き、必要に応じて呼び出すようにしてください。
詳細については、「アンマネージ リソースのクリーンアップ」または「自動メモリ管理」を参照してください。
Class_Initialize
Visual Basic 6.0 では、Class_Initialize メソッドによってクラスの Initialize イベントを処理し、オブジェクト作成時に実行する必要があるコードを実行します。たとえば、クラス データ変数の値を初期化します。
Visual Basic 2008 では、Initialize イベントと Class_Initialize ハンドラはサポートされていません。クラス初期化を実行するには、1 つまたは複数のコンストラクタ メソッドを、定義するクラスまたは構造体に追加します。
詳細については、「Class_Initialize の変更点 (Visual Basic 6.0 ユーザー向け)」を参照してください。
データ クラス
Visual Basic 6.0 では、データ ソース クラスと複合データ コンシューマ クラスを使用して、Microsoft SQL Server データベースなどの外部データを操作します。データ ソース クラスは、外部ソースのデータを提供します。データ コンシューマ クラスは、Data Source クラスなど、外部ソース データにバインドできます。
Visual Basic 2008 では、データ ソース、単純データ コンシューマ、複合データ コンシューマ、およびバインディング クラスを使用して、外部データと内部データを操作します。
詳細については、「データ連結と Windows フォーム」を参照してください。
Default プロパティ
Visual Basic 6.0 では、任意のクラス プロパティを、クラスの既定プロパティとして定義できます。
Visual Basic 2008 では、クラスまたは構造体の既定のメンバは、1 つ以上の引数を受け取るプロパティだけです。既定プロパティ メンバは、クラスまたは構造体の 1 つのプロパティ宣言ステートメントに Default キーワードを指定することによって定義します。
詳細については、「既定のプロパティの変更点 (Visual Basic 6.0 ユーザー向け)」を参照してください。
デリゲート
Visual Basic 6.0 では、デリゲート型はサポートされていません。
Visual Basic 2008 では、デリゲート型は、メソッドの参照を通じてメソッドを間接的に呼び出すことを可能にする、オブジェクト指向メソッド ポインタの形式をとります。デリゲートを使用すると、イベント ハンドラをフックして、あるメソッドから別のメソッドへメソッドを渡すことができます。
デリゲートを使用すると、非同期のデザイン パターンを実装できます。たとえば、非同期のデリゲートを使用すると、メイン プログラムの実行中に、大きなリストを列挙するメソッドをプログラムから呼び出すことができます。列挙が完了するとコールバックが作成され、プログラムがコールバックを処理します。
詳細については、「Visual Basic でのデリゲート」または「方法 : Visual Basic でプロシージャを別のプロシージャに渡す」を参照してください。
エラー処理
Visual Basic 6.0 では、On Error ステートメントを使用して、非構造化例外処理を実行します。
Visual Basic 2008 では、非構造化および構造化の両方の例外処理がサポートされています。構造化例外処理では、例外、分離されたコード ブロック、およびフィルタを含む制御構造を使用して、例外処理機構を作成します。
詳細については、「Visual Basic での構造化例外処理」または「構造化例外処理と非構造化例外処理に適した状況」を参照してください。
イベント
Visual Basic 6.0 では、Event、RaiseEvent、および WithEvents の各キーワードを使用して、イベントを宣言、発生、および処理します。
Visual Basic 2008 では、Event、RaiseEvent、および WithEvents の各キーワードに加えて、AddHandler、RemoveHandler、および Handles という新しいキーワードを使用して、イベントを宣言、発生、および処理します。
AddHandler キーワードと RemoveHandler キーワードを使用すると、イベントに関連付けられているイベント ハンドラを動的に追加、削除、および変更できます。
Handles キーワードを使用すると、メソッドで Handles 句を定義できます。Handles は、プロシージャが指定のイベントを処理することを宣言します。
.NET Framework でのイベントは、デリゲート モデルに基づいています。デリゲート モデルは、オブジェクト指向のオブザーバ デザイン パターンに基づいています。
詳細については、「方法 : イベント ハンドラを記述する」を参照してください。
ジェネリック
Visual Basic 6.0 では、ジェネリック型はサポートされていません。
Visual Basic 2008 では、ジェネリックを使用して、Visual Basic プログラムにおけるパラメータ ポリモーフィズムを実装しています。ジェネリック コードは特定の型を記載せずに記述されるため、多くの新しい型で透過的に使用できます。
Visual Basic 2008 では、ジェネリックなクラス、構造体、インターフェイス、プロシージャ、およびデリゲートで型パラメータがサポートされています。対応する型引数が、ジェネリック型の 1 つの要素のデータ型をコンパイル時に指定します。
詳細については、「Visual Basic におけるジェネリック型」を参照してください。
グローバル クラス
Visual Basic 6.0 では、クラスの Instancing プロパティの値が、クラスがプライベートかどうか、つまり、1 つのコンポーネント内でのみ使用されるのか、他のアプリケーションでも使用できるのかを決定します。また、他のアプリケーションがクラスのインスタンスを作成する方法と、クラス メンバを呼び出す方法も決定します。
Visual Basic 2008 では、Instancing プロパティはサポートされていません。
アセンブリ内のクラス ステートメントに Public キーワードを適用すると、そのアセンブリ内のクラスを他のアセンブリに公開できます。
クラス ライブラリなどの外部アセンブリを参照すると、アプリケーション内のコードが、そのクラス ライブラリの Public クラスを使用できるようになります。
Imports キーワードを使用すると、参照先のプロジェクトとアセンブリから名前空間の名前をインポートできます。また、Imports キーワードを使用すると、ステートメントを使用するファイルと同じプロジェクト内に定義された、名前空間の名前をインポートできます。
クラスおよび構造体のフィールド、プロパティ、およびメソッド メンバに Shared キーワードを適用すると、共有メンバを実装できます。共有メンバは、1 つのクラスまたは構造体のすべてのインスタンスで共有されるプロパティ、プロシージャ、およびフィールドです。クラスの共有メンバには、クラスをインスタンス化せずにアクセスできます。
詳細については、「Visual Basic でのアクセス レベル」、「参照と Imports ステートメント」、または「Visual Basic の共有メンバ」を参照してください。
実装の継承
Visual Basic 6.0 では、実装の継承はサポートされていません。
Visual Basic 2008 では、実装の継承を通じてアドホックなポリモーフィズムを実装できます。これによって、実行時にクライアント コードが相互に使用できるクラスを定義できます。このクラスは、名前は同じでも機能的に異なるメソッドやプロパティを備えています。
派生クラスの元となる基本クラスを定義できます。派生クラスは、基本クラスのプロパティ、メソッド、およびイベントを継承します。また、派生クラスで、基本クラスのプロパティ、メソッド、およびイベントを拡張することもできます。さらに、継承したメソッドを新しい実装でオーバーライドすることもできます。
詳細については、「継承の基本」または「継承を使用する状況」を参照してください。
インターフェイスの継承
Visual Basic 6.0 は、複数の ActiveX インターフェイスを通じてポリモーフィズムを提供します。ActiveX 仕様のインフラストラクチャを形成するコンポーネント オブジェクト モデル (COM) では、複数のインターフェイスを使用することによって、既存のコードを壊すことなく、ソフトウェア コンポーネントのシステムを発展させていくことができます。
Visual Basic 2008 では、.NET Framework の Interface キーワードによってアドホックなポリモーフィズムを実装できます。
複数のクラスは同じ Interface を実装でき、1 つのクラスは 1 つ以上のインターフェイスを実装できます。インターフェイスは本来、クラスがどのように応答するかを定義したものです。インターフェイスは、クラスが実装する必要のあるメソッド、プロパティ、イベント、および各メンバが受け取り、返す必要のあるパラメータの型を定義しますが、これらのメンバをどのように実装するかは、インターフェイスを実装するクラスによって異なります。
複数のインターフェイスを使用すると、既存のコードを壊すことなく、ソフトウェア コンポーネントのシステムを発展させていくことができます。
詳細については、「インターフェイス ベースのポリモーフィズム」または「方法 : インターフェイスを作成および実装する」を参照してください。
メソッド: ByVal パラメータと ByRef パラメータ
Visual Basic 6.0 では、引数は値渡しまたは参照渡しでメソッドに渡されます。メソッド パラメータが ByVal キーワードまたは ByRef キーワードで明示的に指定されない場合、引数は参照渡し (ByRef) で暗黙に渡されます。
Visual Basic 2008 では、引数は値渡しまたは参照渡しでメソッドに渡されます。メソッド パラメータが ByVal キーワードまたは ByRef キーワードで明示的に指定されない場合、引数は値渡し (ByVal) で暗黙に渡されます。
詳細については、「引数の値渡しおよび参照渡し」を参照してください。
メソッド: オーバーロード
Visual Basic 6.0 では、メソッドのオーバーロードはサポートされていません。
Visual Basic 2008 では、Method オーバーロードを使用して、Visual Basic プログラムにおけるアドホックなポリモーフィズムを実装しています。複数のバージョンのメソッドをクラスに定義すると、メソッドはオーバーロードされます。オーバーロードしたバージョンは、パラメータと戻り値の型が異なります。
詳細については、「オーバーロードされたプロパティとメソッド」および「Visual Basic のポリモーフィズムのしくみ」を参照してください。
メソッド: オーバーライド
Visual Basic 6.0 では、メソッドをオーバーライドできません。
Visual Basic 2008 では、Overrides キーワードを使用して派生クラス内のメソッドをオーバーライドすることで、派生クラスの基本クラスとは異なるメソッドの実装を提供できます。
詳細については、「プロパティとメソッドのオーバーライド」を参照してください。
メソッド: 結果を返す
Visual Basic 6.0 では、Function メソッドの名前を変数名として使用して、Function メソッドの結果を返します。
Visual Basic 2008 では、Return キーワードを使用して、Function メソッドの結果を返します。
Sub、Function、または Property の各メソッドを呼び出したコードに制御を戻すには、Return を使用します。
詳細については、「Return ステートメント (Visual Basic)」を参照してください。
My
Visual Basic 2008 では、新しい My 機能が導入され、頻繁に使用する .NET Framework のクラスと関数にエントリ ポイントを提供することによって、Visual Basic での高速なオブジェクト指向プログラミングを実現しています。My 機能は、関連機能がタスク ベースの API にまとめられている新しい高度な .NET Framework クラスを提供します。
詳細については、「My による開発」を参照してください。
MyBase、MyClass、および Me キーワード
Visual Basic 6.0 では、Me キーワードは、暗黙に宣言された変数と同じように動作します。クラスが複数のインスタンスを持つ場合、Me は、コードが実行されている特定のインスタンスのクラスを参照する手段を提供します。
Visual Basic 2008 では、MyBase キーワードは、現在のクラス インスタンスの基本クラスを参照する手段を提供します。
MyClass キーワードは、オーバーライドなしで現在のクラス インスタンスを参照する手段を提供します。
Me キーワードを使用すると、コードが実行されているクラスまたは構造体の特定のインスタンスを参照できます。
詳細については、「Visual Basic における Me、My、MyBase、MyClass」を参照してください。
New キーワード
Visual Basic 6.0 では、New キーワードを不適切に使用すると、異常な再初期化動作が発生し、これが原因でエラーとなり、メモリが過剰に使用されます。
Visual Basic 2008 では、New キーワードはオブジェクトに領域を割り当てるだけであり、異常な再初期化を発生させることはありません。
New 句は、宣言ステートメントまたは代入ステートメントの中で使用します。ステートメントが実行されると、指定したクラスのコンストラクタが呼び出されて、New 句に指定した引数が渡されます。したがって、オブジェクトをインスタンス化する時点でデータの制約を強制できます。
クラスには、1 つ以上のコンストラクタがあります。コンストラクタは、New という名前の、メソッド内のメソッドです。クラス内で New メソッドをオーバーロードすることによって、複数のコンストラクタが定義されます。オーバーロードされたコンストラクタ メソッドは、パラメータ付きのコンストラクタとして記述されます。
詳細については、「New (Visual Basic)」を参照してください。
オブジェクトの有効期間
Visual Basic 6.0 では、オブジェクトの有効期間は確定的であり、すべてのオブジェクト インスタンスが参照カウントを保持します。インスタンスへの最後の参照が解放されると、カウントが 0 になり、オブジェクトはすぐに終了します。
Visual Basic 2008 では、オブジェクトの有効期間は確定的ではなく、最後の参照が解放された直後にデストラクタが呼び出されるとは限りません。これは、個別の参照カウントの代わりに、共通言語ランタイムが参照ツリーを保持しているためです。
ガベージ コレクタは、バックグラウンドで参照ツリーをトレースします。現在実行されているコードから参照されていないオブジェクトまたはオブジェクトのグループが見つかると、これらのオブジェクトのデストラクタが呼び出されます。
破棄の順序や、ガベージ コレクタが参照ツリーをトレースするのにかかる時間を予測することは不可能です。
詳細については、「Visual Basic における有効期間」または「オブジェクトの有効期間 : オブジェクトの作成と破棄」を参照してください。
演算子のオーバーロード
Visual Basic 6.0 では、演算子のオーバーロードはサポートされていません。
Visual Basic 2008 では、演算子のオーバーロードによって、標準の演算子 (*、<>、And など) の動作を、ユーザー定義のクラスまたは構造体に対して定義できます。
詳細については、「方法 : 変換演算子を定義する」を参照してください。
Option Strict
Visual Basic 6.0 では、実行時に寛容な型チェックが使用されます。
Visual Basic 2008 では、OPTION STRICT ON ステートメントを使用して、実行時の寛容な型チェックではなく、デザイン時の厳密な型チェックを有効にできます。既定では OPTION STRICT OFF が使用されます。
Visual Basic コンパイラは、データ型を変換するとき、厳密な型指定規則または寛容な型指定規則に基づいて動作します。厳密な型指定規則が有効な場合 (OPTION STRICT ON)、拡大変換だけが暗黙に許可されますが、縮小変換は明示的に実行する必要があります。寛容な型指定規則 (OPTION STRICT OFF) では、拡大変換と縮小変換をすべて暗黙に試行できます。型変換規則は、オブジェクト型も含めて、すべてのデータ型の変換に適用されます。
詳細については、「Visual Basic における型チェック」を参照してください。
プロパティの構文
Visual Basic 6.0 では、Property Get、Property Let、および Property Set の各ステートメントを使用してプロパティ値を取得および設定します。
Visual Basic 2008 では、プロパティの値を取得および設定するプロシージャを含む、統一されたプロパティ宣言の構文が使用されます。これにより、アクセス レベルやオーバーロードなどのプロパティ属性の一貫性が保証されます。
詳細については、「プロパティの変更点 (Visual Basic 6.0 ユーザー向け)」を参照してください。
パブリック インターフェイス
Visual Basic 6.0 では、クラスのパブリック インターフェイスは、そのパブリック メンバのセットです。
Visual Basic 2008 では、クラスのパブリック インターフェイスは、そのパブリック メンバのセットですが、抽象クラスを使用して、Visual Basic プログラムでサブタイプのポリモーフィズムを実装できます。
抽象クラスは、.NET Framework の Interface に似ています。抽象クラスは、派生クラスの基本クラスとして動作するようにのみ作成されています。抽象クラスは、抽象的な概念やエンティティを表すためにしばしば使用されます。
抽象クラス自体をインスタンス化することはできません。抽象クラスは継承される必要があります。クラスのメンバの一部または全部を実装しないこともできます。実装は継承したクラスで行われます。実装されたメンバはオーバーライドできます。また、継承したクラスは追加インターフェイスやその他の機能も実装できます。
詳細については、「MustInherit」を参照してください。
読み取り専用プロパティ
Visual Basic 6.0 では、Property プロシージャで Set メソッドを除外すると、読み取り専用プロパティが作成されます。
Visual Basic 2008 では、プロパティに ReadOnly キーワードを適用し、プロパティの Set 句を除外して、プロパティを読み取り専用にする必要があります。
フィールドに ReadOnly キーワードを適用して、フィールドを読み取り専用にすることもできます。
詳細については、「ReadOnly (Visual Basic)」を参照してください。
リフレクション
Visual Basic 6.0 では、リフレクションはサポートされていません。
Visual Basic 2008 では、.NET Framework クラス ライブラリの System.Reflection 名前空間内のクラスを使用して、クラス、インターフェイス、値型など、型に関する情報を実行時に取得し、型インスタンスを作成して、起動およびアクセスできます。
詳細については、「Visual Studio のリフレクションの名前空間」を参照してください。
共有クラスと構造体メンバ
Visual Basic 2008 では、新しい Shared キーワードを Property、Sub、Dim、Function、Operator、および Event の各ステートメントに適用して、クラスまたは構造体のすべてのインスタンス間でこれらのステートメントを共有できます。クラスの共有メンバには、クラスをインスタンス化せずにアクセスできます。
共有メンバには、クラスのインスタンスではなく、クラスの名前を通じてアクセスします。
詳細については、「Visual Basic の共有メンバ」を参照してください。
ソース ファイル
Visual Basic 2008 では、プログラムは 1 つ以上のソース ファイルで構成されています。ソース ファイルは、.vb というファイル拡張子を持つ特別な種類のファイルに格納されます。クラス、構造体、インターフェイス、列挙体、デリゲートなどの型の型宣言ステートメントと、標準モジュールのステートメントは、プログラム ソース コード ファイルに格納されます。Visual Basic では、1 つのソース ファイルで定義できる型は 1 つのみという制限はなく、ソース ファイルの名前がソース ファイル内で定義される型の名前と一致している必要もありません。
部分型宣言ステートメントを使用すると、複数のソース ファイルにまたがってクラスや構造体を定義できます。マルチ ソース ファイル プログラムをコンパイルすると、すべてのソース ファイルが 1 つのファイルに連結されて処理されるかのように、すべてのソース ファイルがまとめて処理されます。
詳細については、「Visual Basic プログラムの構造」または「Partial (Visual Basic)」を参照してください。
ユーザー定義型
Visual Basic 6.0 では、Type ステートメントを使用して、さまざまな種類の型の変数を、1 つのユーザー定義型 (UDT) に結合します。
Visual Basic 2008 では、Structure ステートメントと Enum ステートメントを使用して、ユーザー定義の値型を定義します。
ユーザー定義の参照型を定義するには、Class、Interface、および Delegate の各ステートメントを使用します。
詳細については、「構造体 : 独自のデータ型」を参照してください。
変数の宣言
Visual Basic 6.0 では、同じステートメントで異なる型の変数を宣言できます。ステートメントに変数のデータ型が指定されていない場合、既定で Variant が使用されます。
Visual Basic 2008 では、同じデータ型の複数の変数は、ステートメント内で各変数のデータ型を指定せずに宣言できます。
詳細については、「Visual Basic での変数宣言」を参照してください。
アップグレード メモ
Visual Basic 6.0 アプリケーションを Visual Basic 2008 にアップグレードすると、オブジェクト指向のコード コンストラクタは、最も便宜的な方法で、Visual Basic 2008 の最も厳密に対応するコード コンストラクタに変換されます。得られるコードを、Visual Basic 2008 におけるオブジェクト指向プログラミングの実行例と見なさないでください。
アップグレードしたアプリケーションを拡張して Visual Basic 2008 のオブジェクト指向コンストラクタを使用するには、まず、アップグレードしたコードを変更する必要があります。次のページを参考にしてください。
クラス (Visual Basic 6.0 ユーザー向け)
クラスは、オブジェクト指向アプリケーションを作成するためのビルド ブロックです。方法 : カスタム コレクションを Visual Basic の型指定されたコレクションに変換する
Visual Basic 2008 には、型指定されたクラスを Visual Basic 6.0 カスタム コレクションから作成するためのオプションがあります。方法 : ユーザー定義型を Visual Basic の構造体に変換する
Visual Basic 6.0 の Type ステートメントは、Visual Basic 2008 では Structure ステートメントにアップグレードされます。方法 : Implements コードを新しい形式の継承に変換する
新しいバージョンの Visual Basic には、Implements ステートメントを使用する継承と Inherits ステートメントを使用する継承の 2 種類があります。
参照
処理手順
概念
Visual Basic でのモジュールのオブジェクト指向の変更
インターフェイスの変更点 (Visual Basic 6.0 ユーザー向け)