上一页 1 ··· 31 32 33 34 35 36 37 38 39 ··· 52 下一页

2012年6月28日

C#事件-自定义事件

摘要: 事件有很多,比如说鼠标的事件:MouserMove,MouserDown等。键盘的事件:KeyUp,KeyDown,KeyPress。有事件,就会有对事件进行处理的方法,而事件和处理方法之间是怎么联系起来的呢?委托就是他们中间的桥梁,事件发生时,委托会知道,然后将事件传递给处理方法,处理方法进行相应处理。比如在WinForm中最常见的是按钮的Click事件,它是这样委托的:this.button1.Click += new System.EventHandler(this.button1_Click);按按钮后就会出发button1_Click方法进行处理。EventHandler就是系统类库 阅读全文

posted @ 2012-06-28 07:38 流星落 阅读(291) 评论(0) 推荐(0) 编辑

C#事件-经典小例子

摘要: publicclass EatEventArgs : EventArgs...{public String restrauntName; //饭店名称 publicdecimal moneyOut; //准备消费金额 }/**////<summary>/// 这个委托用来说明处理吃饭事件的方法的方法头(模式) ///</summary>publicdelegatevoid EatEventHandler(object sender, EatEventArgs e);/**////<summary>/// 引发吃饭事件(EateEvent)的类Master(主 阅读全文

posted @ 2012-06-28 07:37 流星落 阅读(297) 评论(0) 推荐(0) 编辑

C#事件-探寻事件本质

摘要: 如何定义一个事件?语法:访问修饰符 event关键字 委托类名 事件名;比如:public event somedelegatename myeventname;事件到底是什么类型(引用?值?)事件其实就是一个特殊的委托。MSDN中的C#参考里这样描述:事件是特殊类型的多路广播委托,仅可从声明它们的类或结构(发行者类)中调用。如果其他类或结构订阅了该事件,则当发行者类引发该事件时,会调用其事件处理程序方法。对于这一点,我们也可以从事件的定义中看出,不过就是在定义委托对象时加了event关键字表明这个委托现在叫事件。何谓事件的订阅(subscribe)?我们用VS建立一个只有一个按钮的winfo 阅读全文

posted @ 2012-06-28 07:36 流星落 阅读(489) 评论(0) 推荐(0) 编辑

C#委托-在窗体中使用委托和事件

摘要: 委托和事件在C#中使用非常广泛,例如,当我们点击某个“按钮”的时候,就会有一个“Click”事件触发,而这个事件会通知“委托”,在C#窗体应用程序中,“委托”的名字比较规范,统一使用“EventHandler”,它的具体格式是“void EventHandler(object sender, EventArgs e);”。相信大家都写过下面这样子的HelloWorld程序:当点击按钮的时候弹出一个对话框。我们怎样实现的呢?你肯定会说,我们在设计窗口双击按钮,就会自动为我们生成类似如下的方法:privatevoid button1_Click(objectsender, EventArgs e) 阅读全文

posted @ 2012-06-28 07:35 流星落 阅读(1123) 评论(0) 推荐(0) 编辑

C#事件-事件解析

摘要: 事件(event),这个词儿对于初学者来说,往往总是显得有些神秘,不易弄懂。而这些东西却往往又是编程中常用且非常重要的东西。大家都知道windows消息处理机制的重要,其实C#事件就是基于windows消息处理机制的,只是封装的更好,让开发者无须知道底层的消息处理机制,就可以开发出强大的基于事件的应用程序来。在以往我们编写这类程序中,往往采用等待机制,为了等待某件事情的发生,需要不断地检测某些判断变量,而引入事件编程后,大大简化了这种过程:- 使用事件,可以很方便地确定程序执行顺序。- 当事件驱动程序等待事件时,它不占用很多资源。事件驱动程序与过程式程序最大的不同就在于,程序不再不停地检查输入 阅读全文

posted @ 2012-06-28 07:33 流星落 阅读(299) 评论(0) 推荐(0) 编辑

C#事件-使用事件需要的步骤

摘要: 事件是C#中另一高级概念,使用方法和委托相关。奥运会参加百米的田径运动员听到枪声,比赛立即进行。其中枪声是事件,而运动员比赛就是这个事件发生后的动作。不参加该项比赛的人对枪声没有反应。从程序员的角度分析,当裁判员枪声响起,发生了一个事件,裁判员通知该事件发生,参加比赛的运动员仔细听枪声是否发生。运动员是该事件的订阅者,没有参赛的人不会注意,即没有订阅该事件。C#中使用事件需要的步骤:1、创建一个委托;2、将创建的委托与特定事件关联(.Net类库中的很多事件都是已经定制好的,所以他们也就有相应的一个委托,在编写关联C#事件处理程序--也就是当有事件发生时我们要执行的方法的时候我们需要和这个委托有 阅读全文

posted @ 2012-06-28 07:32 流星落 阅读(337) 评论(0) 推荐(0) 编辑

C#事件-什么是事件

摘要: 每天,我们的身边都在发生各种各样的新闻和事件,有让人不快的事件:跟女朋友分手了,国足又输了,飞机失事了,海地地震了……也有幸运的事件:考试拿了个高分,申雪赵宏博拿到冠军了……等等。什么是事件?这个问题曾经让我十分困扰,在《C#高级编程第6版》中,对事件是这样说的:事件表示C#中已定义的一个对象,即处理通知过程的对象。可是这样说未免抽象,对于像我这样的初学者往往还是难以理解。而我的理解是,事件是处理事件的对象感兴趣的,能够感知或捕获到一种事物状态的改变。说白了,事件即改变。哲学上说,事物的运动是永恒的,静止是相对的。永恒的运动意味着事物本身在发生着改变,所以无时无刻,我们生活的这个世界和宇宙都有 阅读全文

posted @ 2012-06-28 07:31 流星落 阅读(1422) 评论(0) 推荐(1) 编辑

C#委托-多播委托调用多个方法

摘要: 我们可不可以将两个以上的方法委托给一个对象呢?当然可以。多播委托就是指引用多个方法委托,它也是一个委托,当调用委托时,它连续调用每个方法,只要这些方法的签名与委托的定义相同。为了把委托的单个实例合并为一个多播委托,委托必须是同类型的,返回类型必须是void,不能带输出参数(但可以带引用参数),如果委托是有返回值的函数,则只能调用最后一个委托函数。当调用多播委托里,委托所表示的每个方法依次调用。如果有任何参数,它们将用于所有的方法。多播委托:1.委托声明包含的方法返回值必须为void,否则会抛出run-time exception。2.使用“+”、“+=”添加方法,“-”、“-=”删除方法。3. 阅读全文

posted @ 2012-06-28 07:28 流星落 阅读(2188) 评论(0) 推荐(0) 编辑

C#委托-小结

摘要: 委托包含对方法(不是方法名)的引用。使用委托可以在运行时决定调用哪个方法,甚至可以不用知道方法名就可以调用方法(因为我们是使用委托的对象来进行执行方法),执行(或调用)委托实际上将执行该委托所引用的方法。委托将一个委托对象与所指定的方法联系起来,该方法的实现就可以与该委托对象联系起来,这样该委托对象就可以调用那个特定的方法。但是,委托要求方法和委托的定义具有相同的方法签名(即两者都要接受相同个数和类型的参数),并返回相同类型的参数。注:被委托的方法的返回类型和参数列表相同(即参数类型和个数必须相同);委托有点类似于带参数的类声明,可以声明委托的对象,并用被委托的方法作为参数实例化这个对象。可以 阅读全文

posted @ 2012-06-28 07:26 流星落 阅读(162) 评论(0) 推荐(0) 编辑

C#委托-使用匿名方法

摘要: 使用C#委托还有另一种重要方法--通过匿名方法。其中,匿名方法是用作委托参数的一个代码块。请看下面的例子:匿名方法的作用是使代码更简化,方便了程序员。如果没有匿名方法,则定义一套事件监听需要这样:class Program{ public delegate void SomeDelegate(); // 定义委托 static void Main() { SomeType obj = new SomeType(); obj.SomeEvent += new SomeDelegate(MyEventHandler); } // 一般来说,定义的MyEventHandler方法只用来响应事件,只. 阅读全文

posted @ 2012-06-28 07:25 流星落 阅读(195) 评论(0) 推荐(0) 编辑

上一页 1 ··· 31 32 33 34 35 36 37 38 39 ··· 52 下一页

导航