Implements ステートメント
それが存在するクラスまたは構造体の定義に、実装する必要のある 1 つ以上のインターフェイス、つまりインターフェイス メンバーを指定します。
構文
Implements interfacename [, ...]
' -or-
Implements interfacename.interfacemember [, ...]
指定項目
interfacename
必須です。 クラスまたは構造体に、対応するメンバーによって実装されるプロパティ、プロシージャ、およびイベントを持つインターフェイス。
interfacemember
必須です。 実装されるインターフェイスのメンバー。
Remarks
インターフェイスは、インターフェイスによってカプセル化されるメンバー (プロパティ、プロシージャ、およびイベント) を表すプロトタイプのコレクションです。 インターフェイスには、メンバーの宣言のみが含まれます。クラスと構造体で、これらのメンバーを実装します。 詳細については、「インターフェイス」を参照してください。
Implements
ステートメントは、Class
または Structure
ステートメントの直後に記述する必要があります。
インターフェイスを実装する場合は、インターフェイスで宣言されたすべてのメンバーを実装する必要があります。 メンバーを省略すると、構文エラーと見なされます。 個々のメンバーを実装するには、クラスまたは構造体でメンバーを宣言するときに、Implements キーワード (Implements
ステートメントとは別) を指定します。 詳細については、「インターフェイス」を参照してください。
クラスでは、プロパティとプロシージャの Private 実装を使用できますが、インターフェイスの型として宣言された変数に、実装するクラスのインスタンスをキャストすることによってのみ、これらのメンバーにアクセスできます。
例 1
次の例は、Implements
ステートメントを使用して、インターフェイスのメンバーを実装する方法を示しています。 これは、イベント、プロパティ、およびプロシージャを含む ICustomerInfo
という名前のインターフェイスを定義しています。 クラス customerInfo
では、インターフェイスで定義されているすべてのメンバーを実装します。
Public Interface ICustomerInfo
Event UpdateComplete()
Property CustomerName() As String
Sub UpdateCustomerStatus()
End Interface
Public Class customerInfo
Implements ICustomerInfo
' Storage for the property value.
Private customerNameValue As String
Public Event UpdateComplete() Implements ICustomerInfo.UpdateComplete
Public Property CustomerName() As String _
Implements ICustomerInfo.CustomerName
Get
Return customerNameValue
End Get
Set(ByVal value As String)
' The value parameter is passed to the Set procedure
' when the contents of this property are modified.
customerNameValue = value
End Set
End Property
Public Sub UpdateCustomerStatus() _
Implements ICustomerInfo.UpdateCustomerStatus
' Add code here to update the status of this account.
' Raise an event to indicate that this procedure is done.
RaiseEvent UpdateComplete()
End Sub
End Class
クラス customerInfo
では、別のソース コード行で Implements
ステートメントを使用して、クラスで ICustomerInfo
インターフェイスのすべてのメンバーを実装していることを示していることに注意してください。 次に、クラスの各メンバーで、そのメンバー宣言の一部として Implements
キーワードを使用して、そのインターフェイス メンバーを実装していることを示しています。
例 2
次の 2 つのプロシージャでは、前の例で実装したインターフェイスを使用する方法を示しています。 実装をテストするには、これらのプロシージャをプロジェクトに追加し、testImplements
プロシージャを呼び出します。
Public Sub TestImplements()
' This procedure tests the interface implementation by
' creating an instance of the class that implements ICustomerInfo.
Dim cust As ICustomerInfo = New customerInfo()
' Associate an event handler with the event that is raised by
' the cust object.
AddHandler cust.UpdateComplete, AddressOf HandleUpdateComplete
' Set the CustomerName Property
cust.CustomerName = "Fred"
' Retrieve and display the CustomerName property.
MsgBox("Customer name is: " & cust.CustomerName)
' Call the UpdateCustomerStatus procedure, which raises the
' UpdateComplete event.
cust.UpdateCustomerStatus()
End Sub
Sub HandleUpdateComplete()
' This is the event handler for the UpdateComplete event.
MsgBox("Update is complete.")
End Sub
関連項目
.NET