大家看我对C# 事件的理解对不对,请指点

问题描述

usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespace自定义事件{classEventDispatcher{publicdelegatevoidEventHander(Eventev);publiceventEventHandereventHander;publicvoidDispatch(Eventev){if(eventHander!=null)eventHander(ev);}}classEvent:EventArgs{publicstringmessage;publicEvent(stringmessage){this.message=message;}}classSprite:EventDispatcher{publicvoidaddEventListener(EventHanderhander){eventHander+=newEventHander(hander);}}classProgram{staticvoidMain(string[]args){Spritesprite=newSprite();sprite.addEventListener(Receiver);sprite.addEventListener(Hander);sprite.eventHander+=sprite_eventHander;Console.ReadKey();sprite.Dispatch(newEvent("我发送了一个消息"));Console.ReadLine();Console.ReadKey();}staticvoidsprite_eventHander(Eventev){Console.WriteLine("sprite_eventHander收到消息"+ev.message);}privatestaticvoidHander(Eventev){Console.WriteLine("Hander收到消息"+ev.message);}privatestaticvoidReceiver(Eventev){Console.WriteLine("Receiver收到消息:"+ev.message);}}}

解决方案

解决方案二:
写一堆代码,你解释一下想说明什么啊?代码不要抄过70%。一个程序员中重要地是设计,而不是会打字。
解决方案三:
引用1楼sp1234的回复:

写一堆代码,你解释一下想说明什么啊?代码不要抄过70%。一个程序员中重要地是设计,而不是会打字。

我是想问下我这样写有什么问题吗?这是我理解的不知道写的对吗?我是新手求指点
解决方案四:
程序有不同的写法。例如classEvent:EventArgs{publicstringmessage;publicEvent(stringmessage){this.message=message;}}classSprite{publiceventAction<Event>eventHander;publicvoid干(Evente){if(eventHander!=null)eventHander(e);}}classProgram{staticvoidMain(string[]args){Spritesprite=newSprite();sprite.eventHander+=Receiver;sprite.eventHander+=Hander;sprite.eventHander+=sprite_eventHander;sprite.eventHander+=e=>Console.WriteLine("我没有收到-->{0}",e.message);Console.ReadKey();sprite.干(newEvent("我发送了一个消息"));Console.ReadLine();Console.ReadKey();}staticvoidsprite_eventHander(Eventev){Console.WriteLine("sprite_eventHander收到消息"+ev.message);}privatestaticvoidHander(Eventev){Console.WriteLine("Hander收到消息"+ev.message);}privatestaticvoidReceiver(Eventev){Console.WriteLine("Receiver收到消息:"+ev.message);}

编程越简单越好、越少声明类型(接口)越好。当然是恰当合适、达到目的的情况下,不能过分。至于说你从事件这种形式中学到了什么应用原则,还差得比较多。你就好像一个学花拳绣腿当体操来学习拳击,还不知道在比赛场地上如何保存实力击倒对手。
解决方案五:
事件主要是三部曲:第一,注册(或称为:发布、声明);第二,触发(或称为:回调);第三,绑定(或称为:订阅);
解决方案六:
至少得把理解的东西,用文字表述吧

时间: 2024-12-02 05:03:24

大家看我对C# 事件的理解对不对,请指点的相关文章

java请进,本人小白,这个很简单程序看不懂,单击事件。请帮我讲解一下,就是用AIDE开发的呜呜

问题描述 java请进,本人小白,这个很简单程序看不懂,单击事件.请帮我讲解一下,就是用AIDE开发的呜呜 解决方案 这是android/安卓,和java不是一回事-- 请会安卓的来解答吧 解决方案二: **首先上面的三个private是定义在本类里的私有对象. super.oncreate()方法是默认继承的. 下面的setContentView是将R下面的layout中的newone设为初始布局 三个this.XXX是将上面的对象进行初始化,要不会报空指针异常. btn是个按钮,你的代码是给

java-Java中图形界面键盘事件的理解

问题描述 Java中图形界面键盘事件的理解 Java键盘事件中,如果按键一直按住不放 会触发几次键盘事件,会调用几次keyPressed方法?求高手指教 解决方案 你好,如果你不要实现长按键响应的话肯定是响应一次的 解决方案二: http://www.jb51.net/article/73080.htmhttp://jingyan.baidu.com/article/020278118975ef1bcd9ce552.html 解决方案三: http://www.2cto.com/kf/20131

耦合-求指教,关于JAVA接口,这样理解对不对?

问题描述 求指教,关于JAVA接口,这样理解对不对? 把接口看作是电脑上的USB接口,USB接口里有一种方法定义了一种规范,外部的usb设备比如usb鼠标,usb风扇在这个规范下具体实现了鼠标和扇风的功能,这样,人类可以使用usb这一种东西来调用usb接口外部的不同功能,需要改动的时候,只需要把能够实现所需要的功能的usb设备的线接到usb接口上就行了,而不用去做大量改动. 这么理解有什么偏差吗?求指教 解决方案 你可以有不同的理解,这没有任何问题. 当然,我觉得更接近编程思维的理解是,接口是一

磁盘-新手学习C语言到文件顺序读写一节,求助帮忙理解程序,请备注就行!

问题描述 新手学习C语言到文件顺序读写一节,求助帮忙理解程序,请备注就行! //怎样向文件读写字符,本体我的问题是为什么没有用fgetc函数逐渐输入字符,还有为什么我在资源管理器里找不到新建的文件? #include #include int main() { FILE * fp; char ch,filename[10]; printf("请输入所用的文件名:"); scanf("%s",filename); if((fp = fopen("filena

谈谈我对JavaScript DOM事件的理解_javascript技巧

什么是事件? 事件(Event)是JavaScript应用跳动的心脏 ,也是把所有东西粘在一起的胶水.当我们与浏览器中 Web 页面进行某些类型的交互时,事件就发生了.事件可能是用户在某些内容上的点击.鼠标经过某个特定元素或按下键盘上的某些按键.事件还可能是 Web 浏览器中发生的事情,比如说某个 Web 页面加载完成,或者是用户滚动窗口或改变窗口大小. 通过使用 JavaScript ,你可以监听特定事件的发生,并规定让某些事件发生以对这些事件做出响应. DOM与事件是JavaScript最核

AI大事件 | 人类理解行为数据集推出,Uber发布自家分布式深度学习框架

呜啦啦啦啦啦大家好呀,又到了本周的AI大事件时间了.过去的一周中AI圈都发生了什么?大佬们互撕了哪些问题?研究者们发布了哪些值得一读的论文?又有哪些开源的代码和数据库可以使用了?文摘菌带你盘点过去一周AI大事件! 新闻 AlphaGo Zero: 从零开始的学习 来源:DEEPMIND.COM: 链接:https://deepmind.com/blog/alphago-zero-learning-scratch/?utm_campaign=Revue%20newsletter&utm_mediu

onmouseover事件和onmouseout事件全面理解_javascript技巧

这两天接触了onmouseover事件和onmouseout事件,一直以为它们只是简单的分别实现鼠标指针移动到元素上时触发事件和在鼠标指针移出指定的对象时触发事件,但是突然发现这些只是对它们简单的描述,下面让我们一起看看它们终究还有神马奇怪的特性,是好还是坏呢? 首先实现一个盒子: 给这个盒子上绑定上onmouseover事件和onmouseout事件 发现它们不会发生什么问题,然后(嘿嘿,你懂得!) 让我们创建一个B元素,让它被嵌套在A元素中,作为A的子元素 我们依旧只给外层父元素A绑定onm

“父亲节”将至看别人如何做事件营销

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 父亲节源于美国,后来延伸到了各个国家,中国也不例外.为六月份的第三个星期日,是一年中特别感谢父亲的节日.不等这天来临,各个网站,门户网站.社交网站等,关于如何过"父亲节"的消息已经铺天盖地.众网友围绕这个节日谈论如何向父亲感恩.如何向父亲表达自己的爱意与孝心,父亲节的氛围日益浓厚. 笔者就职于伍亿人才招聘网,因招聘网站也需

从韩庚罢录门看网络营销的事件营销

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 不知大家有没有看4月6号晚湖南卫视播的天天向上,当天晚上艺人韩庚录节目中途罢录,而湖南卫视天天向上栏目也把当时的冲突播放出来,引起了包括韩庚团队,湖南卫视,韩庚的粉丝,网民各方阵营的激烈骂战.我7号晚上看了哪一期的视频,下面从网络营销的角度谈谈这个事件. 要了解整个事件的来龙去脉,我们首先要了解谁是这次事件的最大受益人.我本人之前没有太多的关