C#中委托类似于C++中指针的用法,提供了类似于函数指针的功能,不同的是C++中的函数指针只能指向静态方法,而委托除了能指向静态方法之外还可以指向对象的实例的方法。
委托最大的特点是它不知道或不关心自己引用的对象的类。任何对象中的方法都可以通过委托动态调用,只是方法的参数类型和返回值类型必须与委托的参数类型和返回值类型相匹配。
委托主要用在两个方面,其一是CallBack机制 其二是事件处理。
建立和使用委托的步骤
第一步:声明样板
public delegate string MyDelegate(string name);
格式:访问修饰符 delegate 类型 委托名(参数列表);
注意:委托虽然类似于方法,但是却没有实现体,因为它是在执行方法是使用委托动态指定的!
第二步:定义准备调用的方法
这个方法是通过委托调用的,所以此方法的参数类型、个数、参数的顺序都必须和delegate类型相同,例如
public static string FunctionA(string name)
{
……
}
public static string FunctionB(string name)
{
……
}
第三步:定义delegate类型的处理函数,并在此函数中通过delegate类型调用定义的方法
public static void MethodA(MyDelegate Me)
{
Console.WriteLine(Me("张三"));
}
第四步:创建实例,传入准备调用的方法名
MyDelegate a=new MyDelegate(FunctionA);
本行代码的含义是:a指向FunctionA方法的程序代码段。