1.类中定义事件使用关键字Event,事件由RaiseEvent语句引发。
2.用WithEvent关键实例化对象。
3.用Handles来指定对象的事件触发后如何处理,Handles用于指明指定的过程或函数处理什么样的事件。
Module Module1
Public Class 售货员
Public Event SpeakOver()
Private Words() As String = _
{"您好,欢迎光临", "你想买点什么", "对不起,这种商品已经卖完了", "欢迎下次再来"}
Public Sub Speak()
Static index As Integer = 0
If index > 3 Then
Exit Sub
End If
Console.WriteLine("售货员说:" & Words(index))
index += 1
RaiseEvent SpeakOver()
End Sub
End Class
Public Class 顾客
Public Event SpeakOver()
Private Words() As String = {"你好", "我想买条围巾", "真遗憾", "再见"}
Public Sub Speak()
Static index As Integer
If index > 3 Then
Exit Sub
End If
Console.WriteLine("顾客说:" & words(index))
index += 1
RaiseEvent SpeakOver()
End Sub
End Class
Dim WithEvents Salesman As New 售货员
Dim WithEvents Guest As New 顾客
Sub Main()
Salesman.Speak()
Console.Read()
End Sub
Public Sub Salesman_SpeakOver() Handles Salesman.SpeakOver
Guest.Speak()
End Sub
Public Sub Gues_SpeakOver() Handles Guest.SpeakOver
Salesman.Speak()
End Sub
End Module