C#委托总结-入门篇
1,概念:委托类型表示对具有特定参数列表和返回类型的方法的引用。 通过委托,可以将方法视为可分配给变量并可作为参数传递的实体。
委托是引用类型,可以把它看作是用来存方法的一种类型。比如说类型string用来定义存取字符串的变量,那么委托类型delegate就可以用来定义存方法的变量。委托和类一样,是一种用户自定义类型。但类表示的是数据和方法的集合,而委托表示的是一个或多个方法的集合。你可以把delegate看作一个包含有序方法列表的对象,这些方法具有相同的签名和返回类型
2,声明委托类型
委托类型不需要在类内部声明,因为它是类型声明
3,委托对象的创建和赋值
delegate void MyDel(string value); class Program { void Print1(string value) { Console.WriteLine("方法1:{0}", value); } void Print2(string value) { Console.WriteLine("方法2:{0}", value); } void Print3(string value) { Console.WriteLine("方法3:{0}", value); } /// <summary> /// 执行委托方法 /// </summary> /// <param name="d">委托类型参数</param> /// <param name="value">委托内方法的参数</param> void PrintFun(MyDel d, string value) { d(value); } static void Main(string[] args) { Program p = new Program(); MyDel del1, del2, del3;//声明委托变量 //赋值 del1 = p.Print1; del2 = p.Print2; //组合委托 del3 = del1 + del2; //给委托赋新值 del1 = p.Print2; //给委托添加方法 del1 += p.Print3; //从委托移除方法 del1 -= p.Print2; p.PrintFun(del1, "已运行");//调用 Console.WriteLine("\n运行组合委托"); p.PrintFun(del3, "已运行"); Console.ReadKey(); } }