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


Оператор Implements

Обновлен: Ноябрь 2007

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

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

Компоненты

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

  • interfacemember
    Обязательно. Реализуемый член интерфейса.

Заметки

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

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

Для реализации интерфейса необходимо реализовать все члены, объявленные в интерфейсе. Пропуск какого-либо члена считается синтаксической ошибкой. Для реализации отдельного члена необходимо указать ключевое слово Implements (Visual Basic)(которое отличается от оператора Implements) при объявлении члена в классе или структуре. Дополнительные сведения см. в разделе Зарезервированное слово Implements и оператор Implements.

Классы могут использовать реализации свойств и методов с уровнем доступа Private (Visual Basic), однако эти члены доступны только путем приведения экземпляра реализующего класса к переменной типа интерфейса.

Пример

В следующем примере показано использование оператора 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 как часть объявления этого члена.

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

См. также

Основные понятия

Обеспечение полиморфизма в Visual Basic

Ссылки

Implements (Visual Basic)

Оператор Interface (Visual Basic)

Другие ресурсы

Интерфейсы в Visual Basic

Полиморфизм