将连锁反应事件处理程序改写为一个Windows应用程序,为每一个对象创建一个窗体,对象处理事件时当前窗体成为焦点窗体。
以下是连锁反应事件处理程序的代码:using System;namespace L6_3
{
class L6_3
{
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();
}
} public static class Sun
{
public static event EventHandler OnRise; public static void Rise()
{
Console.WriteLine("太阳从东方升起...");
if (OnRise != null)
OnRise(null, null);
}
} public class Cock
{
private string _name; public Cock(string name)
{
_name = name;
Sun.OnRise += new EventHandler(Sun_OnRise);
} private void Sun_OnRise(object sender, EventArgs e)
{
Console.WriteLine("公鸡{0}:", _name);
Console.WriteLine("雄鸡一声天下白!");
this.Sing();
} public event EventHandler OnSing; public void Sing()
{
Console.WriteLine("喔喔喔...");
if (OnSing != null)
OnSing(this, null);
}
} public class Host
{
private string _name; public Host(string name)
{
_name = name;
} public event EventHandler OnGetup; 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();
}
} 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("喵喵...主人起床了,我也该起了");
}
}
}
以下是连锁反应事件处理程序的代码:using System;namespace L6_3
{
class L6_3
{
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();
}
} public static class Sun
{
public static event EventHandler OnRise; public static void Rise()
{
Console.WriteLine("太阳从东方升起...");
if (OnRise != null)
OnRise(null, null);
}
} public class Cock
{
private string _name; public Cock(string name)
{
_name = name;
Sun.OnRise += new EventHandler(Sun_OnRise);
} private void Sun_OnRise(object sender, EventArgs e)
{
Console.WriteLine("公鸡{0}:", _name);
Console.WriteLine("雄鸡一声天下白!");
this.Sing();
} public event EventHandler OnSing; public void Sing()
{
Console.WriteLine("喔喔喔...");
if (OnSing != null)
OnSing(this, null);
}
} public class Host
{
private string _name; public Host(string name)
{
_name = name;
} public event EventHandler OnGetup; 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();
}
} 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("喵喵...主人起床了,我也该起了");
}
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货