Module Module1
'事件委託
Public Delegate Sub 抓小偷事件(ByVal sender As 小偷, ByVal e As 偷東西事件參數)
'事件參數
Public Class 偷東西事件參數
Inherits System.EventArgs
Public 偷的東西 As String
Public 偷的地點 As String
Public 被偷的人 As String
End Class
'警察類
Public Class 警察
Public Sub New()
Console.WriteLine("生成警察。。。")
Console.WriteLine()
End Sub
Public Sub 抓小偷(ByVal sender As 小偷, ByVal e As 偷東西事件參數)
Console.WriteLine()
Console.WriteLine("警察:小毛賊,哪裏跑,。。。")
Console.WriteLine("(小偷被抓。)")
Console.WriteLine()
Console.WriteLine("警察:什麼名字?")
Console.WriteLine("小偷:" & sender.姓名)
Console.WriteLine("警察:偷了什麼?")
Console.WriteLine("小偷:" & e.偷的東西)
Console.WriteLine("警察:在哪裏偷的?")
Console.WriteLine("小偷:" & e.偷的地點)
Console.WriteLine("警察:偷了誰的?")
Console.WriteLine("小偷:" & e.被偷的人)
Console.WriteLine("警察:蹲局子去!100天。")
Console.WriteLine()
End Sub
End Class
'小偷類
Public Class 小偷
Private _姓名 As String
Public Property 姓名() As String
Get
Return _姓名
End Get
Set(ByVal Value As String)
_姓名 = Value
End Set
End Property
Public Sub New(ByVal 姓名 As String)
Console.WriteLine("生成小偷。。。" & "(" & 姓名 & ")")
Me.姓名 = 姓名
Console.WriteLine()
End Sub
Public Event 警察抓小偷事件 As 抓小偷事件
Public Sub 偷東西(ByVal 偷的東西 As String, ByVal 偷的地點 As String, ByVal 被偷的人 As String)
Console.WriteLine("小偷:哈哈。。。今天偷了" & 偷的東西)
Console.WriteLine("(小偷正在暗喜,欲溜。。。。)")
Console.WriteLine()
Dim e As New 偷東西事件參數
e.偷的東西 = 偷的東西
e.偷的地點 = 偷的地點
e.被偷的人 = 被偷的人
RaiseEvent 警察抓小偷事件(Me, e) '偷東西激發警察抓小偷事件
End Sub
End Class
'主程序
Sub Main()
Dim 張三 As 小偷 = New 小偷("張三")
Dim 李四 As New 警察
Console.WriteLine("公交車上,人很多,警察小偷都有,。。。(有好戲看了)。")
'警察開始監視小偷,若偷即抓
AddHandler 張三.警察抓小偷事件, AddressOf 李四.抓小偷
張三.偷東西("一部手機。", "公交車上。", "一名女士。")
Console.ReadLine()
End Sub
End Module