インターフェイスはプロパティ、メソッド、およびイベントの特性を記述しますが、実装の詳細は構造体またはクラスに任せます。
このチュートリアルでは、インターフェイスを宣言して実装する方法について説明します。
注
このチュートリアルでは、ユーザー インターフェイスを作成する方法については説明しません。
注
次の手順では、一部の Visual Studio ユーザー インターフェイス要素の名前や場所がコンピューターに異なる場合があります。 これらの要素は、使用している Visual Studio エディションと使用する設定によって決まります。 詳細については、「IDEのカスタマイズ」を参照してください。
インターフェイスを定義するには
新しい Visual Basic Windows アプリケーション プロジェクトを開きます。
[プロジェクト] メニューの [モジュールの追加] をクリックして、新しいモジュールをプロジェクトに追加します。
新しいモジュールに
Module1.vb
名前を付け、[ 追加] をクリックします。 新しいモジュールのコードが表示されます。TestInterface
内でModule1
という名前のインターフェイスを定義するには、Interface TestInterface
ステートメントとModule
ステートメントの間にEnd Module
を入力し、Enter キーを押します。 コード エディターは、Interface
キーワードをインデントし、End Interface
ステートメントを追加してコード ブロックを形成します。Interface
ステートメントとEnd Interface
ステートメントの間に次のコードを配置して、インターフェイスのプロパティ、メソッド、およびイベントを定義します。Property Prop1() As Integer Sub Method1(ByVal X As Integer) Event Event1()
実装
インターフェイス メンバーの宣言に使用される構文は、クラス メンバーの宣言に使用される構文とは異なる場合があります。 この違いは、インターフェイスに実装コードを含めることができないという事実を反映しています。
インターフェイスを実装するには
ImplementationClass
という名前のクラスを追加するには、次のステートメントをModule1
に追加し、End Interface
ステートメントの後に、End Module
ステートメントの前に追加し、Enter キーを押します。Class ImplementationClass
統合開発環境内で作業している場合は、Enter キーを押すと、 コード エディター によって一致する
End Class
ステートメントが提供されます。次の
Implements
ステートメントをImplementationClass
に追加します。このステートメントは、クラスが実装するインターフェイスに名前を付けます。Implements TestInterface
クラスまたは構造体の先頭にある他の項目とは別にリストされている場合、
Implements
ステートメントは、クラスまたは構造体がインターフェイスを実装していることを示します。統合開発環境内で作業している場合、 コード エディター では、Enter キーを押したときに
TestInterface
に必要なクラス メンバーが実装され、次の手順をスキップできます。統合開発環境内で作業していない場合は、インターフェイス
MyInterface
のすべてのメンバーを実装する必要があります。 次のコードをImplementationClass
に追加して、Event1
、Method1
、およびProp1
を実装します。Event Event1() Implements TestInterface.Event1 Public Sub Method1(ByVal X As Integer) Implements TestInterface.Method1 End Sub Public Property Prop1() As Integer Implements TestInterface.Prop1 Get End Get Set(ByVal value As Integer) End Set End Property
Implements
ステートメントは、実装するインターフェイスとインターフェイス メンバーに名前を付けます。プロパティ値を格納したクラスにプライベート フィールドを追加して、
Prop1
の定義を完了します。' Holds the value of the property. Private pval As Integer
プロパティ get アクセサーから
pval
の値を返します。Return pval
プロパティ セット アクセサーで
pval
の値を設定します。pval = value
次のコードを追加して、
Method1
の定義を完了します。MsgBox("The X parameter for Method1 is " & X) RaiseEvent Event1()
インターフェイスの実装をテストするには
ソリューション エクスプローラーでプロジェクトのスタートアップ フォームを右クリックし、[コードの表示] をクリックします。 エディターには、スタートアップ フォームのクラスが表示されます。 既定では、スタートアップ フォームは
Form1
と呼ばれます。testInstance
クラスに次のForm1
フィールドを追加します。Dim WithEvents testInstance As TestInterface
testInstance
をWithEvents
として宣言することで、Form1
クラスはそのイベントを処理できます。Form1
によって発生したイベントを処理するために、次のイベント ハンドラーをtestInstance
クラスに追加します。Sub EventHandler() Handles testInstance.Event1 MsgBox("The event handler caught the event.") End Sub
Test
という名前のサブルーチンをForm1
クラスに追加して、実装クラスをテストします。Sub Test() ' Create an instance of the class. Dim T As New ImplementationClass ' Assign the class instance to the interface. ' Calls to the interface members are ' executed through the class instance. testInstance = T ' Set a property. testInstance.Prop1 = 9 ' Read the property. MsgBox("Prop1 was set to " & testInstance.Prop1) ' Test the method and raise an event. testInstance.Method1(5) End Sub
Test
プロシージャは、MyInterface
を実装し、そのインスタンスをtestInstance
フィールドに割り当て、プロパティを設定し、インターフェイスを介してメソッドを実行するクラスのインスタンスを作成します。スタートアップ フォームの
Test
プロシージャからForm1 Load
プロシージャを呼び出すコードを追加します。Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Test() ' Test the class. End Sub
F5 キーを押して、
Test
プロシージャを実行します。 "Prop1 は 9 に設定されました" というメッセージが表示されます。 [OK] をクリックすると、"Method1 の X パラメーターは 5" というメッセージが表示されます。 [OK] をクリックすると、"イベント ハンドラーがイベントをキャッチしました" というメッセージが表示されます。
こちらも参照ください
.NET