Visual Basic 言語の新機能 (Visual Basic 6.0 ユーザー向け)
更新 : 2007 年 11 月
Visual Basic 2008 では、継承、インターフェイス、オーバーロードなどの言語機能が追加および強化されており、高性能なオブジェクト指向プログラミング言語が実現されています。このページでは、最大の変更点の一部を重点的に示し、詳細情報へのリンクを示します。
メモ : |
---|
Visual Basic 6.0 に関する知識がある場合は、「言語の変更点 (Visual Basic 6.0 ユーザー向け)」で新概念に関する説明を参照してください。 |
ヒント : |
---|
Visual Basic 2008 の新しい言語機能に関する実践的な説明については、「Visual Basic ガイド ツアー」を参照してください。 |
新機能
以降では、Visual Basic 2008 の新しい言語機能について説明します。
継承
Visual Basic 2008 は、派生クラスの派生元クラスを定義できるようにすることで、継承をサポートしています。派生クラスは、基本クラスのプロパティとメソッドを継承します。また、それらを拡張することもできます。さらに、基本クラスから継承したメソッドを、新しい実装でオーバーライドすることもできます。既定では、Visual Basic 2008 で作成するクラスはすべて継承できますデザインするフォームは実際にはクラスであるため、継承を使用して、既存のフォームに基づいて新しいフォームを定義できます。詳細については、「Visual Basic の継承」を参照してください。
例外処理
Visual Basic 2008 は、C++ などの他の言語によってサポートされている Try...Catch...Finally 構文の拡張バージョンを使用することで、構造化例外処理をサポートしています。構造化例外処理では、最新の制御構造 (Select Case や While に似た制御構造) と、例外、コードの保護ブロック、およびフィルタが組み合わされています。構造化例外処理により、堅牢かつ包括的なエラー ハンドラを備えたプログラムを、より簡単に作成および管理できるようになります。詳細については、「例外処理の概要」を参照してください。
オーバーロード
オーバーロードは、同じ名前を持ちながら異なったデータ型を使用するプロパティ、メソッド、プロシージャ、または演算子を定義する機能です。オーバーロードされたプロシージャを使用すると、必要な数の実装を提供して各種のデータを処理できる一方で、単一の多機能プロシージャとしての外観を持たせることができます。詳細については、「オーバーロードされたプロパティとメソッド」を参照してください。
プロパティとメソッドのオーバーライド
Overrides キーワードを使用すると、派生オブジェクトは親オブジェクトから継承した特性をオーバーライドできます。オーバーライドしたメンバは、基本クラスから継承したメンバと同じ引数と持っていますが、実装は異なります。メンバの新しい実装から親クラスの元の実装を呼び出すには、メンバ名の前に MyBase を付加します。詳細については、「プロパティとメソッドのオーバーライド」を参照してください。
コンストラクタとデストラクタ
"コンストラクタ" は、クラスの新しいインスタンスの初期化を制御するプロシージャです。反対にデストラクタは、クラスがスコープから外れたとき、または Nothing に設定されたときに、システム リソースを解放するメソッドです。Visual Basic 2008 では、Sub New プロシージャと Sub Finalize プロシージャを使用して、コンストラクタとデストラクタをサポートしています。詳細については、「オブジェクトの有効期間 : オブジェクトの作成と破棄」を参照してください。
データ型
Visual Basic 2008 では、3 つの新しいデータ型が導入されています。Char データ型は、符号なし 16 ビット値で、Unicode 文字を格納します。これは、.NET Framework の System.Char データ型に相当します。Short データ型は、符号付き 16 ビットの整数です。以前のバージョンの Visual Basic では、Integer と呼ばれていた型です。Decimal データ型は、符号付き 96 ビットの整数で、10 の累乗によって大きさが変化します。以前のバージョンの Visual Basic では、Variant 内でのみ使用できました。さらに、Visual Basic は、符号なし整数データ型 (UShort、UInteger、ULong)、および signed 型 (SByte) をサポートしています。詳細については、「Visual Basic におけるデータ型」を参照してください。
インターフェイス
インターフェイスは、クラスのプロパティとメソッドを表しますが、クラスとは異なり、実装が存在しません。インターフェイスを宣言するには、Interface ステートメントを使用します。また Implements ステートメントを使用すると、インターフェイスに記述された項目を実行するコードを記述できます。詳細については、「Visual Basic におけるインターフェイス」を参照してください。
デリゲート
デリゲートは、オブジェクトのメソッドを代理で呼び出すことができるオブジェクトで、タイプ セーフなオブジェクト指向の関数ポインタと表現されることもあります。デリゲートを使用すると、イベント発生時に実行されるイベント ハンドラ メソッドをプロシージャに指定できます。またデリゲートは、マルチスレッド アプリケーションでも使用できます。詳細については、「デリゲートと AddressOf 演算子」を参照してください。
共有メンバ
"共有メンバ" は、1 つのクラスのすべてのインスタンスで共有されるプロパティ、プロシージャ、およびフィールドです。共有データ メンバは、複数のオブジェクトで共通の情報を使用する必要がある場合に役立ちます。共有クラス メソッドは、先にクラスからオブジェクトを作成しなくても使用できます。詳細については、「Visual Basic の共有メンバ」を参照してください。
参照
参照を使用すると、他のアセンブリで定義されたオブジェクトを使用できます。Visual Basic 2008 では、参照はタイプ ライブラリではなくアセンブリを指します。詳細については、「参照と Imports ステートメント」を参照してください。
名前空間
名前空間を使用すると、クラス、インターフェイス、およびメソッドが階層で整理され、名前の競合が起こらなくなります。詳細については、「Visual Basic における名前空間」を参照してください。
アセンブリ
アセンブリは、特定のコンポーネントまたはアプリケーションに必要なすべてのファイルを定義することで、タイプ ライブラリに置き換わり、機能を拡張します。アセンブリには、1 つ以上の名前空間を含めることができます。詳細については、「アセンブリ」を参照してください。
属性
属性を使用すると、プログラム要素に関する追加情報を指定できます。たとえば、属性を使用すると、クラスが XML Web サービスとして使用される場合に、クラス内のどのメソッドを公開するかを指定できます。詳細については、「Visual Basic における属性」を参照してください。
マルチスレッド
Visual Basic 2008 を使用すると、複数のタスクを独立して実行できるアプリケーションを記述できます。他のタスクを停止させる可能性のあるタスクを、別のスレッドで実行できます。このプロセスをマルチスレッドと呼びます。マルチスレッドによって、複雑なタスクをユーザー インターフェイスとは別のスレッドで実行することにより、アプリケーションのユーザー入力に対する応答性が向上します。詳細については、「マルチスレッド アプリケーション」を参照してください。
ビット シフト演算子
Visual Basic 2008 は、整数データ型 (Byte、Short、Integer、Long)、および unsigned 型 (UShort、UInteger、ULong) について、左シフト演算子と右シフト演算子をサポートしています。数値のシフトは、循環的には行われません。つまり、一方の端からはみ出したビットが、もう一方の端に補われることはありません。また、対応する代入演算子も用意されています。詳細については、「ビット シフト演算子」および「代入演算子」を参照してください。
ループ変数の宣言
Visual Basic 2008 を使用すると、For ループまたは For Each ループの一部としてループ変数を宣言できます。同じ名前の変数がループの外で宣言されていなければ、For ステートメントまたは For Each ステートメントに、その変数の As 句を含めることができます。この方法で宣言されたループ変数のスコープは、そのループ本体です。詳細については、「For...Next ステートメント (Visual Basic)」および「For Each...Next ステートメント (Visual Basic)」を参照してください。
Visual Basic 2005 における Visual Basic 言語の新機能
このバージョンの Visual Studio では、Visual Basic 2008 の新しい言語機能には、ループの継続、保証されたリソースの廃棄、混合アクセスに関するプロパティ、unsigned データ型、演算子のオーバーロード、ジェネリック型などがあります。詳細については、「Visual Basic 言語の新機能」を参照してください。