总结几点,方便以后复习:
<1> delegate(委托) 是一个引用类型,存储了具有相同签名的方法的地址。
<2> delegate 的构造函数不能为空。
<3>delegate的建立:
int Max(int x,int y)
{
return x>y?x:y;
}
1.delegate void MyDelegate(int a,int b);
2.MyDelegate md = new MyDelegate(Max); 或者是 MyDelegate md = mx;
<4>委托使用的注意事项:
1.在C# 中,所有的委托都是从System.MulticastDelegate类派生的;
2.委托最大的作用就是为类的事件绑定事件处理程序;
3.委托实例中可以封装静态方法也可以封装实例方法;
4.在创建委托实例时,需要传递将要映射的方法或其他委托实例以指明委托将要封装的函数原型(.NET中称为方法签名:signature)。注意,如果映射的是静态方法,传递的参数应该是类名.方法名,如果映射的实例方法,传递的参数应该是实例名.方法名。
5.只有当两个委托实例所映射的方法以及该方法所属的对象都相同时,才认为它们是相等的(从函数地址考虑)。
<5>MulticastDelegate类
1.MulticastDelegate类中可以包括一个委托的链表,这个表中,可以包括一个或多个元素(每个元素都是一个委托),我们可以将这个表称为调用链。
2.当我们调用一个MultiDelegate的时候,位于该MultiDelegate调用链中的委托就会被串行调用,这样我们就可以只调用一个方法,而多个相同签名的方法就会同时被串行调用。
网友评论