-
Implements 语句
指定一个或多个接口或接口成员,这些接口或接口成员必须在它们所在的类或结构定义中实现。
Implements interfacename [, ...]
-or-
Implements interfacename.interfacemember [, ...]
部件
-
interfacename
必选。 一个接口,其属性、过程和事件将由类或结构中对应的成员来实现。 -
interfacemember
必选。 正被实现的接口的成员。
备注
接口是表示该接口封装的成员(属性、过程和事件)的原型集合。 接口只包含成员的声明;类和结构实现这些成员。
Implements 语句必须紧跟在 Class 或 Structure 语句的后面。
当实现接口时,必须实现该接口中声明的所有成员。 省略任何成员被认为是语法错误。 若要实现单个成员,您在类或结构中声明该成员时要指定 Implements 子句 (Visual Basic) 关键字(它与 Implements 语句是分离的)。 有关更多信息,请参见 接口 (Visual Basic)。
类可以使用属性和过程的 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