委托
概念:
c,c++,Pascal 和其他语言支持函数指针(地址)的概念,允许在运行时选择要调用的函数。java不提供任何具有函数指针功能的结构,但C#提供这种构造。通过使用 Delegate类,委托实例可以封装属于可调用实体的方法。
委托:C#的委托类似于c或C++ 中的函数指针。(函数的地址)
委托: 用来封装带有特定签名和返回类型的方法。
特点:
委托类似于C++函数指针 ,但它是类型安全的。
委托允许将方法作为参数进行传递
委托可用于定义回调方法。
委托可一个链接在一起,例如:可以对一个事件调用多个方法。
方法不需要与委托签名精确匹配。
定义和使用委托
【访问修饰符】delegate 返回值类型 委托名称(参数列表);
注意:委托只能接受相同返回值和相同参数列表的方法。
private delegate void MyDelegate(int n);
private delegate double MySin(double m);
上述代码声明了一个委托MyDelegate,该委托类型可以引用一个采用int作为参数并返回void的方法。
实例化委托
委托是一个引用数据类型,定义委托后,必须实例化才能使用。
第一种方式:使用关键字new实例化委托
第二种方式:直接将方法赋给委托。、
实例化委托的过程就是将委托和方法关联的过程。委托不仅可以关联实例方法,也可以关联静态方法。委托可以关联多个方法,形成一个方法链:
》+=:添加方法关联
》-=:减少方法关联
》委托还可以关联一个或多个其他委托。

浙公网安备 33010602011771号