VB.NET委托用法示例
委托的好用之处,在 VB.NET 里真是蛮的。是你想写个事件响应、回调啥的,委托出场就挺自然。
用 Delegate 定义一个方法签名,其实就像说:“我接下来要传的方法,长啥样得先讲清楚。”比如:
Public Delegate Sub MyDelegate(ByVal message As String)
这个定义告诉你,任何接收一个 String
参数、不返回值的方法都可以往这个委托里塞。
你可以在类里用这个委托挂个事件。就像下面这样:
Public Class MyClass
Public Event MyEvent As MyDelegate
Public Sub RaiseEvent(message As String)
RaiseEvent MyEvent(message)
End Sub
End Class
再写个类来监听这个事件也顺手,代码不多:
Public Class ClientClass
Public Sub New 订阅者(subscriber As MyClass)
AddHandler subscriber.MyEvent, AddressOf OnMyEvent
End Sub
Private Sub OnMyEvent(message As String)
Console.WriteLine($"接收到消息: {message}")
End Sub
End Class
这样一来,事件一触发,OnMyEvent
就能立马响应。写主函数测试下,直接上:
Module Module1
Sub Main()
Dim myObject As New MyClass()
Dim client As New ClientClass(myObject)
myObject.RaiseEvent("这是个测试消息")
End Sub
End Module
这种写法在做界面交互、多线程回调时用得多,挺灵活的。如果你还想研究得更深入,可以看看下面这些延伸资源,涉及事件、多线程、跨语言委托等场景,挺实用的。
57.79KB
文件大小:
评论区