次の方法で共有


Implements ステートメント

表示されるクラスまたは構造体定義に実装する必要がある 1 つ以上のインターフェイスまたはインターフェイス メンバーを指定します。

構文

Implements interfacename [, ...]  
' -or-  
Implements interfacename.interfacemember [, ...]  

部品

interfacename
必須。 プロパティ、プロシージャ、およびイベントがクラスまたは構造体の対応するメンバーによって実装されるインターフェイス。

interfacemember
必須。 実装されているインターフェイスのメンバー。

注釈

インターフェイスは、インターフェイスがカプセル化するメンバー (プロパティ、プロシージャ、およびイベント) を表すプロトタイプのコレクションです。 インターフェイスには、メンバーの宣言のみが含まれます。クラスと構造体は、これらのメンバーを実装します。 詳細については、「 インターフェイス」を参照してください。

Implements ステートメントは、ClassまたはStructureステートメントの直後に記述する必要があります。

インターフェイスを実装するときは、インターフェイスで宣言されているすべてのメンバーを実装する必要があります。 メンバーを省略すると、構文エラーと見なされます。 個々のメンバーを実装するには、クラスまたは構造体でメンバーを宣言するときに、 Implements キーワード ( Implements ステートメントとは別) を指定します。 詳細については、「 インターフェイス」を参照してください。

クラスはプロパティとプロシージャの プライベート 実装を使用できますが、これらのメンバーは、実装クラスのインスタンスをインターフェイスの型として宣言された変数にキャストすることによってのみアクセスできます。

例 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

こちらも参照ください