C#基础知识回顾–委托事件

脚大家分析下将各种组成部分连接起来

老三步:球有一个轩然大波

        
创制一个新事件,这个波还有有参数,如球的离开及轨道。这么些参数作为伊夫(Eve)ntArgs对象的一个实例关联到事件,然后

事件来,所有监听目的都能得到这多少个事件。一旦事件发生,所有订购者都会师拿到通知,并做有拍卖。

第二步:触发事件

       当球被出时,此时发球员对象来一个初事件。

 

1.我们用一个标志事件参数的目的

       
要牢记,Play事件(大家下将发球事件还说成play事件)有部分亟需带的参数。所以我们要一个简短的靶子来代表这些参数。

为之,.NET
提供了一个专业的好像,名也伊芙(Eve)ntArgs,然而此近乎没有其他成员。它的目标仅仅发一个,就是许以你的事件的参数对象传

递到事件事件处理程序再说运用。
以下是事件参数近似的表明:

     public class
BallEventArgs:EventArgs

 

5.SendPlayer靶有一个事变通报订购者球赛先导。

style=”font-size: large;”>既然都创办事件,那么点这多少个波就老大爱,只需要调用Play事件。

if(Play!=null)

Play(this,e);

style=”font-size: large;”>基本的步子都有了,我们能够以步骤写自己之事件了。

第五步:各种对象处理事件

          
现在,其他球员都会见以她们友善的法子处理发球事件。不过并无是还要运行—他们之事件处理程序会次收获调用,并因

BallEventArgs对象的一个援作为参数。     

 

4.相继对象订购事件

style=”font-size: large;”>一旦确立了事件处理程序,其他球员对象急需关联他们协调之事件处理程序。每个对象都来友好一定的

style=”font-size: large;”>sendPlayer_Play方法,对这么些事件做出不同的应。所以,

style=”font-size: large;”>要是暴发一个SendPlayer对象引用变量或字段,名也sendPlayer,可以据此+=操作符关联事件处理程序:

 

sendPlayer.Play+=new
EventHandler(sendPlayer_Play);

style=”font-size: large;”>在达到一致首来看他自家刹那间便悟了(续)—委托,被人疯狂喷。说写的太空,没有啊内容之类的。所以准备于此更写下, style=”font-size: large;”>可是依旧照在 style=”font-size: large;”>从前的主意尽量简单的勾。这里大家因为打篮球为例。

3.订购类需要事件处理方法

         
订购SendPlayer的Play事件之一一对象都亟待一个事件处理程序。其实大家都知道事件处理程序是怎工作的,

汝拉一个Button,然后双击它,IDE就自行为您扩充一个click事件。所以Play的风波而看起应当挺熟谙。

          

             void 
sendPlayer_Play(object sender,EventArgs e)

style=”font-size: large;”>C#遭遇连没有规则要求事件处理程序必须遵照某种格局命名,不过这是同样栽非凡规范的命名约定:首先是目标引用名,

style=”font-size: large;”>前面一个下划线,再前面是事件称为。

2.接下来要以闹事件之类吃定义是事件

     
我们于SendPlayer类中(就是发球球员类,汗,英文不是太好,见谅)定义一个事件,以便其他对象订购这多少个波。

宣示如下:

      public event EventHandler
Play;

style=”font-size: large;”>event关键字背后的伊夫(Eve)ntHandler不是C#的保留字,它是.NET提供的。之所以要其,是为了告知订购事件之靶子。

style=”font-size: large;”>他们的事件处理方法应该是什么体统(有什么样的签)

style=”font-size: large;”>即他们之事件处理程序应该有少个参数,一个参数是称吧sender的object,另一个参数是名为e的伊夫ntArgs引用。

先是步:首先,其他对象订购事件

       当发球的球员发它的发球事件前,其他球员需要预订这么些事件,选择这种办法,只要出现一个发球事件,其他球

位便可知知情。

 

季步:订购者获得关照   

            由于其他球员对象还预订了发球球员对象的发球事件,所以这一个目的会面拿到文告,并序调用他们之事件处理方法。事件高居

理程序就是暴发事件不时订购者对象运行的法子,一旦发球者爆发了彼事件,就会创设一个Ball伊夫(Eve)ntArgs对象,其中蕴涵球的轨迹

跟去,从而将只对象传递到订购者的事件处理程序。

相关文章