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

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(); //给邻居打电话
}
}
}
...全文
5499 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)
源码下载地址: https://pan.quark.cn/s/40677b766bda "ContextCapture 倾斜摄影快速、创新及全面空三建模与单机集群硬件部署方案2018" 此资源聚焦于倾斜摄影(ContextCapture)空三建模及单机集群硬件部署方案,致力于为用户呈现最快、最优成本效益的台式工作站、移动工作站、并行集群的多样化部署选择。以下是该资源的详细知识点概述: 一、相关设备型号说明 * UltraLAB 是西安坤隆计算机科技有限公司推出的专属图形工作站品牌,具备三大卓越优势:顶尖的计算硬件架构、精准的行业应用定制服务、专业的硬件系统优化工艺。 二、硬件部署方案 * 台式工作站部署建议:设备特色在于当前市场上最快的台式计算架构,适用于办公场景下,部门层级常规的倾斜摄影空三处理、三维建模。 * 便携式工作站部署建议:设备特色在于当前市场上最快的移动计算架构,适用于移动倾斜摄影的空三处理、三维建模工作站。 * 大数据量处理工作站推荐:设备特色在于极限自动超频加速与16个并行存储构造,具备空三处理和三维建模最强的计算性能及海量高速并行存储性能。 * 多设备并行计算集群部署建议:针对海量图像数据计算产生的巨大需求,单机计算能力处理时间过长,效率不高,通过多台机器并行集群,进行空三处理、三维建模,显著减少处理时间。 三、部署方案深入解析 * 2.1 倾斜摄影建模(台式工作站)部署方案:设备特色在于最高的计算处理能力~6核5.2GHz,内存最大配置可达64GB,配备最新图灵架构的RTX显卡,相比市场其他品牌机器(单CPU、双Xeon处理器)更快、更具成本效益。 * 2.2 倾斜摄影建模(移动便携式工作站)硬件部署方案:设备特色在于最高的计算处理能力~6...

111,129

社区成员

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

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

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