Оператор ImplementsImplements Statement

Указывает один или несколько интерфейсов или элементов интерфейса, которые должны быть реализованы в определении класса или структуры, в котором они отображаются.Specifies one or more interfaces, or interface members, that must be implemented in the class or structure definition in which it appears.

СинтаксисSyntax

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

КомпонентыParts

interfacename
Обязательный элемент.Required. Интерфейс, свойства, процедуры и события которого должны быть реализованы соответствующими элементами в классе или структуре.An interface whose properties, procedures, and events are to be implemented by corresponding members in the class or structure.

interfacemember
Обязательный элемент.Required. Член реализуемого интерфейса.The member of an interface that is being implemented.

RemarksRemarks

Интерфейс — это коллекция прототипов, представляющих члены (свойства, процедуры и события), которые инкапсулирует интерфейс.An interface is a collection of prototypes representing the members (properties, procedures, and events) the interface encapsulates. Интерфейсы содержат только объявления для членов; классы и структуры реализуют эти члены.Interfaces contain only the declarations for members; classes and structures implement these members. Дополнительные сведения см. в разделе Интерфейсы.For more information, see Interfaces.

ImplementsОператор должен следовать непосредственно за Class Structure оператором или.The Implements statement must immediately follow the Class or Structure statement.

При реализации интерфейса необходимо реализовать все члены, объявленные в интерфейсе.When you implement an interface, you must implement all the members declared in the interface. Пропуск любого члена считается синтаксической ошибкой.Omitting any member is considered to be a syntax error. Для реализации отдельного элемента необходимо указать ключевое слово Implements (отдельно от Implements оператора) при объявлении члена в классе или структуре.To implement an individual member, you specify the Implements keyword (which is separate from the Implements statement) when you declare the member in the class or structure. Дополнительные сведения см. в разделе Интерфейсы.For more information, see Interfaces.

Классы могут использовать закрытые реализации свойств и процедур, но эти члены доступны только путем приведения экземпляра реализующего класса к переменной, объявленной как тип интерфейса.Classes can use Private implementations of properties and procedures, but these members are accessible only by casting an instance of the implementing class into a variable declared to be of the type of the interface.

ПримерExample

В следующем примере показано, как использовать Implements инструкцию для реализации членов интерфейса.The following example shows how to use the Implements statement to implement members of an interface. Он определяет интерфейс с именем ICustomerInfo с событием, свойством и процедурой.It defines an interface named ICustomerInfo with an event, a property, and a procedure. Класс customerInfo реализует все члены, определенные в интерфейсе.The class customerInfo implements all the members defined in the interface.

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 интерфейса.Note that the class customerInfo uses the Implements statement on a separate source code line to indicate that the class implements all the members of the ICustomerInfo interface. Затем каждый член класса использует Implements ключевое слово как часть его объявления члена, чтобы указать, что он реализует этот член интерфейса.Then each member in the class uses the Implements keyword as part of its member declaration to indicate that it implements that interface member.

ПримерExample

В следующих двух процедурах показано, как можно использовать интерфейс, реализованный в предыдущем примере.The following two procedures show how you could use the interface implemented in the preceding example. Чтобы протестировать реализацию, добавьте эти процедуры в проект и вызовите testImplements процедуру.To test the implementation, add these procedures to your project and call the testImplements procedure.

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

См. такжеSee also