模拟连锁反应事件(验证型题目)

上传者: fuleying9 | 上传时间: 2021-11-29 16:56:49 | 文件大小: 24KB | 文件类型: -
(1)创建C# 控制台应用程序L4_4。 (2)新建一个表示太阳的类Sun,在其中定义一个事件OnRise,一个成员方法Rise,并在方法中引发。参考源代码如下 (太阳只有一个,所以将其定义为静态类,静态类中只能定义静态成员) : public static class Sun { public static event EventHandler OnRise; //定义了一个事件成员OnRise public static void Rise() //引发事件的函数成员 { Console.WriteLine("太阳从东方升起..."); if (OnRise != null) OnRise(null, null); //引发事件OnRise } } (3)在程序中新建一个公鸡类Cock,在其中定义:  私有字段_name;  针对Sun.OnRise事件的处理方法Sun_OnRise;  事件OnSing;  引发事件OnSing的方法Sing。  构造函数,初始化私有字段_name,并将事件处理方法与事件进行关联。 参考源代码如下: public class Cock { private string _name; //私有字段,用于存放Cock实例的名称 public Cock(string name) //构造函数,初始化字段,并将事件关联至处理方法 { _name = name; Sun.OnRise += new EventHandler(Sun_OnRise); } //定义Sun.OnRise事件的处理方法 private void Sun_OnRise(object sender, EventArgs e) { Console.WriteLine("公鸡{0}:", _name); Console.WriteLine("雄鸡一声天下白!"); this.Sing(); //调用Sing方法以引发自身的事件OnSing } public event EventHandler OnSing; //Cock类的事件成员 public void Sing() //引发OnSing事件的方法 { Console.WriteLine("喔喔喔..."); if (OnSing != null) OnSing(this, null); } } (4)在程序中新建一个主人类Host,在其中同样定义:  私有字段_name;  起床事件OnGetup;  起床方法Getup(引发起床事件的成员);  养鸡方法Foster,在该方法中将事件OnSing与事件处理方法c1_OnSing相关联;  Cock.OnSing事件的处理方法c1_OnSing。 参考源代码如下:(c1_OnSing方法中调用Getup方法,表示公鸡打鸣会使主人起床) public class Host { private string _name; public Host(string name) { _name = name; } public event EventHandler OnGetup; //Host类的事件成员 public void Getup() { Console.WriteLine("日出而作..."); if (OnGetup != null) OnGetup(this, null); } public void Foster(Cock c1) { c1.OnSing += new EventHandler(c1_OnSing); } private void c1_OnSing(object sender, EventArgs e) { Console.Wri

文件下载

评论信息

  • deallyge :
    很好 对我很有用 作业就是这个 参考参考
    2013-11-13
  • renaxjurina :
    观察者模式的典型例子,很好
    2013-04-14

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明