顿悟?!新手浅谈事件与委托

nada123456789 2012-06-02 05:51:42
加精
作为一个刚学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(); //给邻居打电话
}
}
}
...全文
5280 187 打赏 收藏 转发到动态 举报
写回复
用AI写文章
187 条回复
切换为时间正序
请发表友善的回复…
发表回复
y2012 2012-07-11
  • 打赏
  • 举报
回复
现在看还是看不太懂,标记了以后再看。
q503959 2012-06-14
  • 打赏
  • 举报
回复
顶~~学习了~~~看完之后有点懂~~但估计写的时候会遇到不少问题
FitPual 2012-06-13
  • 打赏
  • 举报
回复
就这么过去吧..日子...
wwqwwf 2012-06-13
  • 打赏
  • 举报
回复
很复杂,头都大了,能否简单点
SocketUp 2012-06-13
  • 打赏
  • 举报
回复
[Quote=引用 208 楼 的回复:]

观察者模式 多态 事件 都大同小异
[/Quote]
大同我知道
小异在哪里呢?
wangjunit 2012-06-13
  • 打赏
  • 举报
回复
观察者模式 多态 事件 都大同小异
sawjie 2012-06-13
  • 打赏
  • 举报
回复
喜闻乐见 大快人心!楼主初学者能有这样的理解很不错了!不过严格来说 是有点本末倒置的意思!
程序猿CKeen 2012-06-13
  • 打赏
  • 举报
回复
让我想起了碰到无数次的一个题目"猫抓老鼠,把人惊醒了"。。。
Anew_G 2012-06-13
  • 打赏
  • 举报
回复
94L不错的例子
hlncwg 2012-06-13
  • 打赏
  • 举报
回复
都忘得差不多了
zhang_bamboo 2012-06-13
  • 打赏
  • 举报
回复
本来我觉得我已经懂了,看你的例子晕了,估计是本人比较浮躁吧,求原文链接
hjhxh21 2012-06-12
  • 打赏
  • 举报
回复
非常 好,学习了。
风吹腚腚凉 2012-06-12
  • 打赏
  • 举报
回复
[Quote=引用 175 楼 的回复:]
感觉和MFC里面的消息挺像的
[/Quote]
我记得以前跟一个C++的人一起做项目,我问他你的那个回调函数是怎么个情况,然后他问我,你知道什么是消息不,我说知道,就跟那一样,然后我立刻理解了什么是委托。
SocketUp 2012-06-12
  • 打赏
  • 举报
回复
翻吧翻吧
别删我
hztltgg 2012-06-12
  • 打赏
  • 举报
回复
翻页了
萧瑟的鱼 2012-06-12
  • 打赏
  • 举报
回复
都是牛人啊
cca313 2012-06-12
  • 打赏
  • 举报
回复
委托和事件一直是入门者的痛~~ 最近看张子阳的文章是雾里看花阿~
SocketUp 2012-06-12
  • 打赏
  • 举报
回复
[Quote=引用 196 楼 的回复:]

有意思,每个知识点都可以用个小故事来诠释
[/Quote]

有故事的知识点
pc1986ch 2012-06-12
  • 打赏
  • 举报
回复
有意思,每个知识点都可以用个小故事来诠释
whb147 2012-06-11
  • 打赏
  • 举报
回复
还有一个很好例子,就是进度条
加载更多回复(167)

110,545

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧