委托是一种全新面向对象语言特性,运行在.Net平台
基于委托,开发事件驱动程序变得非常简单
使用委托可以大大简化多线程变成的难度
理解委托
int a; //定义变量
a=100;//给变量赋值
int b=a+10; //使用变量
委托,也可以看成一种数据类型,可以定义变量,但是他是一种特殊的变量
委托定义的变量能接受的数值只能是一个方法(函数),可以理解成委托就是一个方法(函数)的指针。
方法1
方法调用——委托对象 方法2
方法3
public delegate void Mydel(string a); //【1】创建一个无返回值无参数的委托 class Program { private static void get1( string b) //【2】根据委托定义一个“具体”的方法实现功能 { Console.WriteLine(b+"你好世界"); }
private static void get(string c) //【2】根据委托定义一个“具体”的方法实现功能 { Console.WriteLine(c+"你好世界"); }
static void Main(string[] args) { Mydel my = new Mydel(get); //【3】创建委托对象,关联“具体”方法 my(“中国”); //【4】通过委托去调用方法(而不是直接使用方法)
my-=get; //讲委托变量所代表的具体方法“解绑”
my+=get1; //重新指向一个新的方法 Console.ReadKey(); } // public delegate void Mydel(string i); //创建一个无返回值有参数的委托 //class Program //{ // private static void get(string a) //方法赋给委托也要是无返回值有参数的 // { // Console.WriteLine("你好世界"+a); // } // static void Main(string[] args) // { // Mydel mydele; // mydele = get; // mydele("中国"); // Console.ReadKey(); // }