一、委托(Delegate)
(一)委托是什么
- 委托是存储对某个方法进行引用的引用类型变量,该变量可以作为其它方法的参数进行传递。
- 与C中函数指针的异同:(同)都可以实现以引用的方式对某个方法进行访问和执行。(异)函数指针不是类型安全的,无法得知指针实际指向,也无法得知方法的参数与返回类型。委托是类型安全的,可以清晰得知方法定义的参数和返回类型。
// 派生自 System.Delegate 类
using System;
// 委托声明
// delegate <return type> <delegate-name> <parameter list>
public delegate int MyDelegateClass(int value);
// 创建委托实例
// 使用 new 关键字创建, Func1 是某方法
MyDelegateClass FuncHandler = new MyDelegateClass(Func1)
(二)委托的意义
- 实现 事件(Event) 和 回调方法
(三)委托的使用
- 先定义一个方法
using System;
namespace MyApp
{
class A
{
// 定义一个用于委托的方法
public static int AddNumber(int num1, int num2)
{
return num1 + num2;
}
}