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

这种写法在做界面交互、多线程回调时用得多,挺灵活的。如果你还想研究得更深入,可以看看下面这些延伸资源,涉及事件、多线程、跨语言委托等场景,挺实用的。

rar 文件大小:57.79KB