【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就能够使用方法来做参数了,基本是这样,如有错误,欢迎指正。

原文地址:https://www.cnblogs.com/iteou/p/5843754.html