counter
counter

委托与事件

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.

posted @ 2012-07-25 15:55  bfy  阅读(127)  评论(0编辑  收藏  举报