顿悟?!新手浅谈事件与委托
作为一个刚学c#一个多月纯新手表示委托与事件啃书+啃MSDN+做了n道习题,花了2天也没搞太清楚。但是刚才看了一个帖子,某大牛举了一个下雨打电话给邻居收衣服的例子,感觉似乎瞬间开朗!于是我根据自己的理解尽可能简洁的重写了一遍,加上自己的注释,希望能帮到和我一样纠结与此的初学者们,也请大牛多多指出各种理解不到位的地方。代码如下:
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 收衣服{ public delegate void Mydelegate(); //先定义一个委托类 class me //我 { public void PickupClothes() //我有一个收衣服的方法 { Console.WriteLine("衣服收好了!"); } public void PhoneNeighbor() //我还有一个给邻居打电话的方法 { Neighbor PLMM = new Neighbor(); //假设邻居是一个漂亮MM~ PLMM.GetPhone += new Mydelegate(PickupClothes); //告诉她怎么收衣服。。。(给getphone事件绑定一个pickupclothes的方法) PLMM.Doit(); //just do it... } } class Neighbor //邻居 { public event Mydelegate GetPhone; //邻居有一个接电话的事件 public void Doit() //邻居还要有一个能处理事件的方法 { if (GetPhone != null) //如果我打电话过来不是啥都没说 { GetPhone(); //那么就照我说的去做吧! } } } class Program { static void Main(string[] args) { Console.WriteLine("下雨了!"); //下雨了。。。 me me = new me(); //实例化一个我 me.PhoneNeighbor(); //给邻居打电话 } }}