Поделиться через


Реализует инструкцию

Указывает один или несколько интерфейсов или элементов интерфейса, которые должны быть реализованы в определении класса или структуры, в котором она отображается.

Синтаксис

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

Комплектующие

interfacename
Обязательное. Интерфейс, свойства, процедуры и события которого реализуются соответствующими членами класса или структуры.

interfacemember
Обязательное. Член реализуемого интерфейса.

Замечания

Интерфейс представляет собой коллекцию прототипов, представляющих элементы (свойства, процедуры и события), инкапсулирует интерфейс. Интерфейсы содержат только объявления для членов; классы и структуры реализуют эти элементы. Дополнительные сведения см. в разделе "Интерфейсы".

Оператор Implements должен немедленно следовать инструкции или Structure инструкцииClass.

При реализации интерфейса необходимо реализовать все члены, объявленные в интерфейсе. Опущение любого члена считается синтаксической ошибкой. Чтобы реализовать отдельный элемент, необходимо указать ключевое слово 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

В следующих двух процедурах показано, как можно использовать интерфейс, реализованный в предыдущем примере. Чтобы протестировать реализацию, добавьте эти процедуры в проект и вызовите процедуру 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

См. также