对象和共享事件列表

时间:2010-12-08 19:05:40

标签: vb.net events

好的,我已经从像

这样的类创建了一个对象列表
   For B As Integer = 0 To 5
            clients.Add(New Client)
           AddHandler clients(B).OnMessage, AddressOf clients_OnRec
   Next

然后这是事件声明

Public Event OnRec As EventHandler

这是我的活动

Private Sub clients_OnRec(ByVal sender As Object)

'Does something

End Sub

我的问题是如何确定列表中哪个类的实例引发了事件。我需要能够做到这样的事情:

clients(whateveronefiredit).ExecuteMethodInClass

我该怎么做?

1 个答案:

答案 0 :(得分:0)

:)让我试着解释发生了什么

现在在列表中你有5个Client类型的对象,所有这5个对象在某种事件上调用事件处理程序clients_OnRec。

当第一个客户端引发此事件时,事件处理程序签名sender中的Private Sub clients_OnRec(ByVal sender As Object)将具有引发事件的客户端对象引用。

因此,为了在引发事件的对象上调用方法ExecuteMethodInClass,您将执行以下操作:

Private Sub clients_OnRec(ByVal sender As Object)
    Dim c As Client = CType(sender, Client) 'Cast the sender object as Client object
    c.ExecuteMethodInClass() 'This executes the ExecuteMethodInClass on the Client object which raised this event
End Sub

希望很清楚。

干杯