Implements 语句

指定必须在 Implements 中出现的类或结构定义中实现的一个或多个接口或接口成员。

语法

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

组成部分

interfacename
必需。 一个接口,其属性、过程和事件由类或结构中的相应成员实现。

interfacemember
必需。 正在实现的接口的成员。

注解

接口是表示接口封装的成员(属性、过程和事件)的原型的集合。 接口仅包含成员的声明;类和结构实现这些成员。 有关详细信息,请参阅接口

Implements 语句必须紧跟在 ClassStructure 语句之后。

实现接口时,必须实现接口中声明的所有成员。 省略任何成员都会被视为语法错误。 要实现单个成员,请在声明类或结构中的成员时指定 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

另请参阅