您好,欢迎光临本网站![请登录][注册会员]  
文件名称: 模拟连锁反应事件(验证型题目)
  所属分类: C#
  开发工具:
  文件大小: 24kb
  下载次数: 0
  上传时间: 2011-11-14
  提 供 者: fule*****
 详细说明: (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.WriteLine("主人{0}:", _name); Console.WriteLine("闻鸡起舞!"); this.Getup(); } } (5)新建狗类Dog和猫类Cat,在其中定义:  私有字段_owner,记录器主人对象;  owner_OnGetup方法,处理Host.OnGetup事件(主人起床时,狗和猫的动作);  公有属性Owner封装字段_owner,并在其set访问函数中关联事件和事件处理方法; 参考源代码如下: public class Dog { private string _name; private Host _owner; public Host Owner { get { return this.owner; } set { this._owner = value; this._owner.OnGetup += new EventHandler(owner_OnGetup); } } public Dog(string name) { _name = name; } private void owner_OnGetup(object sender, EventArgs e) { Console.WriteLine("{0}:", _name); Console.WriteLine("汪汪...主人起床了,我也该起了"); } } public class Cat { private string _name; private Host _owner; public Host Owner { get { return this._owner; } set { this._owner = value; this._owner.OnGetup += new EventHandler(owner_OnGetup); } } public Cat(string name) { _name = name; } private void owner_OnGetup(object sender, EventArgs e) { Console.WriteLine("{0}:", _name); Console.WriteLine("喵喵...主人起床了,我也该起了"); } } (6)在程序主方法中依次建立鸡、主人、狗、猫对象,而后调用Sun.OnRise方法,参考源代码如下: class L4_4 { static void Main() { Cock cock1 = new Cock("花花"); Host host1 = new Host("小明"); host1.Foster(cock1); Dog dog1 = new Dog("阿黄"); dog1.Owner = host1; Cat cat1 = new Cat("咪咪"); cat1.Owner = host1; Sun.Rise(); } } ...展开收缩
(系统自动生成,下载前可以参看下载内容)

下载文件列表

相关说明

  • 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
  • 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度
  • 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
  • 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
  • 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
  • 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.
 相关搜索: C# 上机作业
 输入关键字,在本站1000多万海量源码库中尽情搜索: