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