委托 用法 学习心得: 哪里用委托

委托 主要用途 就是  通知 调用者.

具体

class  classA

dim B1 as new ClassB

end class

Class classB

  sub 方法1()

    if xx then

      全局变量1= 1

    else if yy then

      全局变量1 = 2

    else

      

    end if

  end sub

end class

这里 在 ClassA 中 声明了一个ClassB的实例B1(实例 就是 真的在内存中 给它划了了一块地方--给房卡了,未实例 就是 预定了房间,但还没拿到房卡 ).

这时,classA执行 B1.方法1 ,更改了 全局变量1, 假设 全局变量 变成 2 以后 A 要干一件事情1,

那么 方案1:  A 可以 通过 查询 全局变量1 来确定 是否干事情1.

方案2: B 通知 A 我这里 的 变量变成2了.

显然 通过 方案2 更方便 更高效,因为 只有 变量变成2 它才 通知A

再看 委托 实现的 过程.

如果大家不理解 那么 把 委托类型 先理解成 vb6 中 type 类型,vb.net 的 structure 类型.  自定义数据类型 就好理解了

1:   在B类里面, 先 自定义 一个类型    

structure  自定义

  dim  s1 as string

  dim s2 as string

end structure

deligate  sub 委托类型 ( str as string)

2: 声明一个 自定义类型的 变量

dim 自1 as  自定义

dim 委1 as 委托类型

3: 调用

在A类里面  声明 B1

B1.自1.s1 = "名字"

B1.自1.S2 = "年龄"

B1.委1 = addressof 函数名

=================================

到这里 大家应该明白了. 为什么 委托 要先声明,其实 它就是 自定义函数结构类型

而 委托 保存的 是 一个 函数的 地址.

通过这个地址,可把处理 转到 调用者A 那里,A可以自己处理 出现的情况.

总结:  被调用者B 可以通过 委托,反向 (通知)调用 A中的函数处理相关的事情.

原文地址:https://www.cnblogs.com/MadeInChinese/p/12869221.html