代理使用方法
要理解 Delegate,首先,你要明白,它是一个类,他和 Class 是一个级别的概念,不同在于
Class 的定义包含字段和方法,而 delegate 只包含方法的细节。
定义 Delegate:
public delegate bool CompareDelegate(int a, int b);
上面语句的含义是:定义了一个委托的实例时,这些实例都要包含一个方法名,并且这个
方法必须有两个 int 型的参数,并且必须返回一个 bool 型的值。
好,现在就创建一个上面定义的委托的实例
public CompareDelegate myCompare = new CompareDelegate(CompareMethod);
里面的这个 CompareMethod 是一个方法:
定义如下:
public static bool CompareMethod(int x , int y)
{
bool result = x > y ? true : false;
return result;
}
( 委 托 声 明 的 一 个 对 象 就 叫 委 托 , 事件就是一个代理类型的变量 ( 相 当 于 这 里 的
myCompare))
下面的内容可以加深理解
一、代理
首先我们要弄清代理是个什么东西。别让一串翻译过来的概念把大家搞晕了头。
有的文章把代理称委托、代表等,其实它们是一个东西,英文表述都是“Delegate”。由于没
有一本权威的书来规范这个概念,所以现在网上对它的称谓不一。本文我将以“代理”来称谓
Delegate。
代理是什么呢?我认为“代理就是用来定义指向方法的引用”。下面我们就通过类来理解代理。
如:
Ren r = new Ren("车延禄");
上面的代码,就是使用 Ren 这个类定义了一个指“车延禄”这个对象实例的一个引用。
也可以这样理解:用 Ren 类定义的变量 r,指向一个“车延禄”对象的实例。
类所定义的变量指向的是一个对象,代理所定义的变量指向的是个方法,当然这个方法可以是
静态方法也可以是实例方法。对代理引用的调用就是对代理所指向方法的调用。
1.代理声明的语法:
[public/private] delegate <返回值类型> <代理名称>(<参数列表>);