本文向大家介绍C#支持事件,可能好多人还不了解C#支持事件,没有关系,看完本文你肯定有不少收获,希望本文能教会你更多东西。
安康网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设公司等网站项目制作,到程序开发,运营维护。创新互联2013年开创至今到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联。
这里介绍C#支持事件(这个特点也是MSVJ所具有的),当前很多主流程序语言处理事件的方式各不相同,Delphi采用的是函数指针(这在Delphi中的术语是“closure”)、Java用改编类来实现、VC用WindowsAPI的消息系统,而C#则直接使用delegate和event关键字来解决这个问题。下面让我们来看一个例子,例子中会给大家举出声明、调用和处理事件的全过程。
- //首先是指代的声明,它定义了唤醒某个函数的事件信号
- public delegate void ScoreChangeEventHandler (int newScore, ref bool cancel);
- //定义一个产生事件的类
- public class Game
- {
- // 注意这里使用了event关键字
- public event ScoreChangeEventHandler ScoreChange;
- int score;
- // Score 属性
- public int Score
- {
- get {
- return score;
- }
- set {
- if (score != value)
- {
- bool cancel = false;
- ScoreChange (value, ref cancel);
- if (! cancel)
- score = value;
- }
- }
- }
- // 处理事件的类
- public class Referee
- {
- public Referee (Game game)
- {
- // 裁判负责调整比赛中的分数变化
- game.ScoreChange += new ScoreChangeEventHandler (game_ScoreChange);
- }
- // 注意这里的函数是怎样和ScoreChangeEventHandler的信号对上号的
- private void game_ScoreChange (int newScore, ref bool cancel)
- {
- if (newScore < 100)
- System.Console.WriteLine ("Good Score");
- else
- {
- cancel = true;
- System.Console.WriteLine ("No Score can be that high!");
- }
- }
- }
- // 主函数类,用于测试上述特性
- public class GameTest
- {
- public static void Main ()
- {
- Game game = new Game ();
- Referee referee = new Referee (game);
- game.Score = 70;
- game.Score = 110;
- }
- }
在主函数中,我们创建了一个game对象和一个裁判对象,然后我们通过改变比赛分数,来观察裁判对此会有什么响应。以上介绍C#支持事件。
【编辑推荐】
当前标题:C#支持事件简单描述
路径分享:http://www.shufengxianlan.com/qtweb/news12/225862.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联