理解了几年都理解不了委托的含义,今天好好弄了一下终于个人方面理解了 ;现在加以介绍;

1、委托相当于一个类,这个类里可以不断的往里放函数

2、更深一层的意思是他是一个动态的虚拟层(虚拟类),可以在两个类之间周转,可以让两个类互相使用

3、简单的实例:

需求:

主窗体上有一个label,一个弹出按钮;点击弹出按钮,弹出子窗体;子窗体关闭时,主窗体的的label值改变。

步骤:

点击弹出按钮时,实例化了一个新的子窗体对象,主窗体可以调用子窗体的属性,但是子窗体想调主窗体的属性就只有new一个新的主窗体,原主窗体上的改变显然有问题

方案:

可以用函数返回值做这个效果。更好更直接的方法就是委托;委托是一个虚拟中间层;子窗体上实例化委托,并在关闭子窗体事件中调用这个委托而不是调用主窗体;主窗体也调用这个实例化的委托,为委托添加主窗体上想用的方法(改变label)(注册委托);所以实现过程就是:弹出子窗体时,在主窗体注册这个委托等待触发,关闭子窗体时,子窗体触发这个委托,主窗体上的label随之改变。

子窗体如下:定义并实例化并触发委托

    (public delegate void mydel();)

C#委托的介绍含义理解

主窗体注册这个委托

C#委托的介绍含义理解

相关文章: