Implements (Instrucción)

Especifica una o varias interfaces, o miembros de interfaz, que deben implementarse en la definición de clase o estructura en la que aparece.

Sintaxis

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

Partes

interfacename
Necesario. Interfaz cuyas propiedades, procedimientos y eventos deben implementar los miembros correspondientes en la clase o estructura.

interfacemember
Necesario. Miembro de una interfaz que se está implementando.

Comentarios

Una interfaz es una colección de prototipos que representan los miembros (propiedades, procedimientos y eventos) que encapsula la interfaz. Las interfaces contienen solo las declaraciones de los miembros; Las clases y estructuras implementan estos miembros. Para más información, vea Interfaces.

La Implements instrucción debe seguir inmediatamente a la instrucción o Class Structure .

Al implementar una interfaz, debe implementar todos los miembros declarados en la interfaz . La omisión de cualquier miembro se considera un error de sintaxis. Para implementar un miembro individual, especifique la palabra clave Implements (que es independiente de la instrucción ) al declarar el miembro Implements en la clase o estructura. Para más información, vea Interfaces.

Las clases pueden usar implementaciones privadas de propiedades y procedimientos, pero estos miembros solo son accesibles mediante la conversión de una instancia de la clase de implementación en una variable declarada como del tipo de la interfaz.

Ejemplo 1

En el ejemplo siguiente se muestra cómo usar la Implements instrucción para implementar miembros de una interfaz. Define una interfaz denominada ICustomerInfo con un evento, una propiedad y un procedimiento. La clase customerInfo implementa todos los miembros definidos en la interfaz .

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

Tenga en cuenta que la clase usa la instrucción en una línea de código fuente independiente para indicar que la clase customerInfo implementa todos los miembros de la interfaz Implements ICustomerInfo . A continuación, cada miembro de la clase usa la palabra clave como parte de su declaración de miembro para indicar Implements que implementa ese miembro de interfaz.

Ejemplo 2

Los dos procedimientos siguientes muestran cómo podría usar la interfaz implementada en el ejemplo anterior. Para probar la implementación, agregue estos procedimientos al proyecto y llame al testImplements procedimiento.

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

Consulta también