VB.net delegate 委托相关学习体会

文章目录


前言

委托这个概念穿插在vb.net的很多地方且非常抽象,但是VB.NET相关的资料还是非常少的(包括windows官方文档也只有c#版本的.我在看过很多大佬的解释和教学后从完全不明白到略知一二,现在把自己的体会记录一下


一、委托是什么?

Delegate 语句定义委托类的参数和返回类型。任何具有匹配参数和返回类型的过程都可用于创建此委托类的实例。然后就可以调用委托的Invoke 方法,通过委托实例调用此过程。可以在命名空间、模块、类或结构级别声明委托,但不能在过程内声明。每个委托类都定义一个被传递对象方法规范的构造函数。委托构造函数的参数必须是对方法或lambda 表达式的引用。

二、delegate(自定义委托)

1.定义委托类型

比如 我想委托一个sub 用于增加进度条.
首先我需要定义委托类型(也就是第一句)
后面是我需要委托执行的sub

 Private Delegate Sub progress(ByVal x As Integer, ByVal obj As ProgressBar)

 Sub progressUp(i As Integer, progressB As ProgressBar)
        If progressB.Value < 100 Then
            progressB.Value += i
        End If
End Sub

2.进行委托

在需要使用委托时,先把委托类型实例化
然后使用invoke或者begininvoke进行委托:

 Dim proInvokeUp As New progress(AddressOf progressUp)
 Dispatcher.Invoke(proInvokeUp, 4, ProgressBar1)

总结

下一篇会加上action和func 的委托方法

上一篇:Spring 5.0.3.RELEASE中的 Kotlin 语言等支持


下一篇:Inspect(VB.NET、C#版)软件的的下载和使用