c#中关于delegate、委托、事件之间的联系、关系

delegate是个类,委托也是个类,可以通过delegate来定义一个委托,然后通过委托声明一个委托变量(也称委托对象),而事件呢,它就是个对象!!通过反编译可以看到事件本身是一个私有的委托变量加上两个公有的方法,在公有方法中对这个私有的变量作赋值等操作。从而避免了在声明这个事件的类的外部去触发它(这个事件),也避免了赋值时候方法的覆盖。

如果不好理解的话可以对应的怎么理解,在类中声明一个私有的字段(private int age),那么用来声明这个字段的类型(比如int)可以类比委托,而和这个字段相关联的属性(public int Age{get;set;})Age类比事件,那么普通的委托变量呢可以理解为声明了一个公有的字段(private int age)的age。(虽然有点不准确,但是能帮助你更好的理解这几者之间的关系)

原文地址:https://www.cnblogs.com/holong2003/p/3090694.html