【C#】委托
委托是类类型
定义方法为:在定义前面(也就是void那个位置前面)多一个delegate关键字。例:public delegate void MyDelegate(int para1, string para2);
前面的委托类型MyDelegate包装的方法需要满足以下条件
1.方法的返回类型必须为void;
2.方法必须有两个参数,并且第一个参数应为int类型,第二个参数为string类型。
再归纳一下:可以被委托包装的方法必须满足以下规则
1.方法的签名必须与委托一致,方法签名包括参数的个数、类型和顺序;
2.方法的返回类型要和委托一致,注意,方法的返回类型不属于方法签名的一部分。
2016.09.02
早上看了个视频,简单理解了些委托,就像介绍说的,我们可以把方法作为参数来传递,但是书里的例子用了一个类似中转的方法Test,把方法和参数链接在一起
1 namespace weituo 2 { 3 public delegate void DelSayHi(string name); 4 class Program 5 { 6 static void Main(string[] args) 7 { 8 Test("张三",SayHiChinese); 9 Console.ReadKey(); 10 } 11 12 public static void Test(string name,DelSayHi del) 13 { 14 del(name); 15 } 16 17 public static void SayHiChinese(string name) 18 { 19 Console.WriteLine("吃了吗?"+ name); 20 } 21 22 public static void SayHiEnglish(string name) 23 { 24 Console.WriteLine("Nice to meet you"+ name); 25 } 26 } 27 }
使用方法有好几种,今天就看到上面那种,书上的还不是太理解。关于上面,因为下面的方法和委托的签名一致,所以下面中文英文的打招呼都可以传递给委托,然后Test就能够使用方法来做参数了,基本是这样,如有错误,欢迎指正。