定义:委托是C#语言提供的新的引用类型,即委托类型,也称代理类型。在功能上类似于C语言的函数指针,目的是通过委托类型对象去调用相同签名的函数。
采用委托可以实现通用程序的编写。
委托的定义步骤:定义委托类型 --> 定义委托对象 --> 定义委托方法的实现 --> 委托的调用
委托有四种格式!以下用有参数型的为例子来解析
-
定义委托类型
委托类型定义格式为:
修饰符 delegate 函数返回类型 委托类型名(函数形参列表)
例如:
public delegate void weituo(ref int x);
表示定义了一个委托类型,它能代表第一个参数为ref对象,第二个参数为int类型,返回值为void类型的函数。
-
定义委托对象
委托对象定义格式为:
委托类型名 委托对象名=new委托类型名(委托方法名);
其中委托方法名可以是某个类的静态方法名,也可以是某个对象的实例方法名。方法的参数类型、返回类型必须与委托类型名的要求一致。
例如:
weituo wt =new weituo(cs.Add2);
表示将委托对象wt代表cs类的Add2静态方法。以后就可以通过调用wt来达到调用Add2函数的目的。
-
定义委托方法的实现
委托方法是真正要调用的函数,根据逻辑需要,在类中定义其实现过程。
例如:
public void Add2(ref int x)
{
x += 2;
}
-
委托的调用
格式为:委托对象名(实参列表);
例如:
wt(ref z);