|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
java的设计机制:首先产生一个中间码,第二部编译为本地(机器)码。这个机制有很大的缺点。<p>事务,是C#编程模子中主要的一个观点,经由过程对事务的了解,能够更好的懂得C#程序运转机制。C#中的事务,能够复杂的了解为类大概工具产生了一件事,而且把这件事关照给了其他的类大概工具,其他的类大概工具能够依据事务的动静有所反响。这十分相似计划形式中的察看者形式。
激发事务的类或工具,能够称之为事务源,注册并对处置事务的类大概工具能够称为事务定阅者大概事务监听者,我对照喜好称之为事务监听者。
好比:构建一个winform使用,在窗体Form1复杂安排一个按钮控件,然后,双击按钮,则能够进进代码视图中按钮click事务处置程序。
<olclass="dp-c">privatevoidbutton1_Click(objectsender,EventArgse){///sender即暗示事务源,e暗示经由过程事务传送过去的动静}
这时候,还能够翻开Form1.designer.cs,还能够找到以下代码:
<olclass="dp-c">this.button1.Click+=newSystem.EventHandler(this.button1_Click);
这行代码标明,以后窗体注册了click事务(click就是Button工具的一个事务),而且用button1_Click办法举行了处置。EventHandler是一个托付,关于托付可拜见我的上一篇文章C#基本观点之托付。
以上是对C#事务的一些复杂的注释。固然,我们也能够自界说事务。
自界说事务,分为以下几步:
第一步:起首在事务源工具界说事务
<olclass="dp-c">//界说事务publiceventEventHandlermyevnet;
第二步:在事务监听者,定阅事务
<olclass="dp-c">//事务注册this.myevnet+=newEventHandler(MyEventHandler);
第三步:在事务监听者,编写事务处置代码:
<olclass="dp-c">///<summary>///事务的处置///</summary>///<paramname="sender"></param>///<paramname="e"></param>privatevoidMyEventHandler(objectsender,EventArgse){MessageBox.Show("myeventisraised.......");}
第四步:在事务源工具激发事务
<olclass="dp-c">//判别事务是不是被注册if(myevnet!=null){//激发事务myevnet(this.button1,newEventArgs());}
这仅是个演示,供列位参考,上面给出完全代码,便利测试
复杂自界说事务,完全代码:
<olclass="dp-c">publicpartialclassForm1:Form{//界说事务publiceventEventHandlermyevnet;publicForm1(){InitializeComponent();//事务注册this.myevnet+=newEventHandler(MyEventHandler);}privatevoidbutton1_Click(objectsender,EventArgse){MessageBox.Show("button1_Click");//判别事务是不是被注册if(myevnet!=null){//激发事务myevnet(this.button1,newEventArgs());}}///<summary>///事务的处置///</summary>///<paramname="sender"></param>///<paramname="e"></param>privatevoidMyEventHandler(objectsender,EventArgse){MessageBox.Show("myeventisraised.......");}}
固然,真情况下,自界说事务要比这个庞大一些,上面再举一个例子,在事务激发时,传送自界说的动静。
起首要自界说一个事务动静类,这个类承继于EventArgs
然后自界说托付,来处置事务。完全代码以下:
事务源方面:
<divclass="code"><olclass="dp-c">///自界说事务托付publicdelegatevoidMyeventHandler(objectsender,MyEventArgse);publicpartialclassAddGrade:Form{//声明事务publiceventMyeventHandlermyCustomevent;&nbs你可以先看看这篇文章(软微学院生涯-三朝元老经验谈),打不开再跟我说。(我的意思是想让她自己先稍微了解一下到底现在各个方向学的工具以及以后要做的工具大概是什么,因为喜欢做什么样的事其实自己最清楚的) |
|