一路学习下来,从变量到结构,都挺顺利,但是在碰到委托、事件的时候懵了一下下,我把委托与事件那一章重复看了两遍,敲了其他的示例,大概懂了许多。
委托的话是单一对应的,因为在创建委托对象时声明了委托类型,委托限定了函数返回值与函数参数类型,代码如下:
1 namespace ConsoleApp 2 { 3 //声明一个委托 4 public delegate void MyDelegate(string name); 5 //定义Test类 6 class Test 7 { 8 //第一个方法 9 public void Method1(string name) 10 { 11 Console.WriteLine($"{name}的第一个方法"); 12 } 13 //第二个方法 14 public void Method2(string name) 15 { 16 Console.WriteLine($"{name}的第二个方法"); 17 } 18 //入口方法 19 public static void Main() 20 { 21 //实例化Test类 22 Test test = new Test(); 23 //创建委托对象并包含方法 24 MyDelegate myDelegate = new MyDelegate(test.Method1); 25 myDelegate += new MyDelegate(test.Method2); 26 //调用委托对象包含的方法 27 myDelegate("李二狗"); 28 } 29 } 30 }
输出结果为:
然而事件确可以对应不确定的对象,因为事件借助委托,事件一般没有返回值,代码: