委托与事件
1.委托是一个类,它定义了方法的类型,使得可以将方法作为另一个方法的参数进行传递。
声明一个委托,返回值和参数类型与被委托的函数一致。
public delegate T1 FunctionDelegate(T2 argument);
public T1 Function1(T2 argument)
{
//todo 对参数操作
}
public T1 Function2(T2 argument)
{
//todo 对参数操作
}
protected T3 Function3(T2 argument1,FunctionDelegate argument2)
{
argument2(argument1);
}
public static void main()
{
Function 3(T2 argument1,Funtion1);
Function 3(T2 argument2,Funtion2);
}
2.既然委托是个类,那么它就可以声明变量,即
FunctionDelegate Delegate1, Delegate2
那么上面的可以这么用,给变量赋值:
Delegate1 = Function1;
Delegate1+=Function2;
Function 3(T2 argument2,Delegate1);将依次执行Function1和Function2.
当然,取消绑定Function2:Delegate1-=Function2;
3.事件:
public event FunctionDelegate MakeFuction;封装了 委托类型 的变量,使得在类的内部,不管声明是public 还是 protected,都是private.