C#事件
来源:互联网 发布:打击网络犯罪工作总结 编辑:程序博客网 时间:2024/06/07 11:19
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication3
{
//事件:是一种消息机制,一旦事件触发,那么会有一系列的对象也同时会做出相应的操作
delegate void DelWork();
class WangHaiJian
{
public event DelWork BuEvent;
public WangHaiJian(XingRen x,Bank b)
{
BuEvent += new DelWork(b.BeiZha);
BuEvent += new DelWork(x.Dead);
}
public void Buring()
{
Console.Write("王海健点火,爆炸事件触发,");
BuEvent();
}
}
class XingRen
{
public void Dead()
{
Console.Write("行人死亡,");
}
}
class Bank
{
public void BeiZha()
{
Console.Write("银行被炸");
}
}
class Cat
{
public event DelWork CatEvent;
public Cat(Hoster h,Mouse m)
{
CatEvent += new DelWork(h.Wake);
CatEvent += new DelWork(m.Run);
}
public void Miao()
{
Console.Write("猫叫了,");
CatEvent();
}
}
class Hoster
{
public void Wake()
{
Console.Write("主人醒了,");
}
}
class Mouse
{
public void Run()
{
Console.Write("老鼠跑了。");
}
}
class President
{
public void DoWork(DelWork d)
{
d();
}
}
class Dog
{
//事件记录的是多个委托,一旦事件触发
//事件就会通知这个事件上的所有的委托上的所有的方法都执行
public event DelWork attackEvent;
//public Dog(Human h)
//{
//}
public void OnAttack()
{
Console.WriteLine("狗咬人");
attackEvent();
}
}
class Human
{
string name ="";
public string Name
{
get { return name; }
set { name = value; }
}
public Human(string n)
{
this.name = n;
}
public Human(string n,Dog d)
{
this.name=n;
d.attackEvent += new DelWork(Run);
d.attackEvent += new DelWork(Hit);
}
public void Run()
{
Console.WriteLine("{0}跑",name);
}
public void Hit()
{
Console.WriteLine("{0}打狗",name);
}
}
class Program
{
public void Work()
{
Console.WriteLine("奥特曼");
}
static void Main(string[] args)
{
//President pd = new President();
//Program p=new Program();
//DelWork dw = new DelWork(p.Work);
//pd.DoWork(dw);
//Dog d = new Dog();
//Human h = new Human("杨逍");
//Human h1 = new Human("狗不理", d);
//Human h3 = new Human("杨坤", d);
//d.OnAttack();
Hoster h = new Hoster();
Mouse m = new Mouse();
Cat c = new Cat(h,m);
c.Miao();
XingRen x = new XingRen();
Bank b = new Bank();
WangHaiJian w = new WangHaiJian(x,b);
w.Buring();
}
}
}
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication3
{
//事件:是一种消息机制,一旦事件触发,那么会有一系列的对象也同时会做出相应的操作
delegate void DelWork();
class WangHaiJian
{
public event DelWork BuEvent;
public WangHaiJian(XingRen x,Bank b)
{
BuEvent += new DelWork(b.BeiZha);
BuEvent += new DelWork(x.Dead);
}
public void Buring()
{
Console.Write("王海健点火,爆炸事件触发,");
BuEvent();
}
}
class XingRen
{
public void Dead()
{
Console.Write("行人死亡,");
}
}
class Bank
{
public void BeiZha()
{
Console.Write("银行被炸");
}
}
class Cat
{
public event DelWork CatEvent;
public Cat(Hoster h,Mouse m)
{
CatEvent += new DelWork(h.Wake);
CatEvent += new DelWork(m.Run);
}
public void Miao()
{
Console.Write("猫叫了,");
CatEvent();
}
}
class Hoster
{
public void Wake()
{
Console.Write("主人醒了,");
}
}
class Mouse
{
public void Run()
{
Console.Write("老鼠跑了。");
}
}
class President
{
public void DoWork(DelWork d)
{
d();
}
}
class Dog
{
//事件记录的是多个委托,一旦事件触发
//事件就会通知这个事件上的所有的委托上的所有的方法都执行
public event DelWork attackEvent;
//public Dog(Human h)
//{
//}
public void OnAttack()
{
Console.WriteLine("狗咬人");
attackEvent();
}
}
class Human
{
string name ="";
public string Name
{
get { return name; }
set { name = value; }
}
public Human(string n)
{
this.name = n;
}
public Human(string n,Dog d)
{
this.name=n;
d.attackEvent += new DelWork(Run);
d.attackEvent += new DelWork(Hit);
}
public void Run()
{
Console.WriteLine("{0}跑",name);
}
public void Hit()
{
Console.WriteLine("{0}打狗",name);
}
}
class Program
{
public void Work()
{
Console.WriteLine("奥特曼");
}
static void Main(string[] args)
{
//President pd = new President();
//Program p=new Program();
//DelWork dw = new DelWork(p.Work);
//pd.DoWork(dw);
//Dog d = new Dog();
//Human h = new Human("杨逍");
//Human h1 = new Human("狗不理", d);
//Human h3 = new Human("杨坤", d);
//d.OnAttack();
Hoster h = new Hoster();
Mouse m = new Mouse();
Cat c = new Cat(h,m);
c.Miao();
XingRen x = new XingRen();
Bank b = new Bank();
WangHaiJian w = new WangHaiJian(x,b);
w.Buring();
}
}
}
- c#事件
- c#事件
- C#事件
- c#事件
- C#事件
- C#事件
- c#事件
- C#事件
- c#事件
- C#事件
- c#事件
- C#事件
- c# 事件
- C#事件
- C#事件
- C# 事件
- C#事件
- c# 事件
- IT精英的健康问题令人担忧
- iis支持未知文件下载,配置特定目录下文件均为下载
- 利用jQuery的$.event.fix函数统一浏览器event事件处理
- C#委托
- Android之调用系统Email发送邮件
- C#事件
- 【Linux基础】简单的C++程序
- QT编译执行步骤
- 如何去除discuz的powered by discuz!代码
- C#窗体应用程序
- 偷窥惹得祸 从恶搞视频看IT巨头争斗根源
- [5月20日的脚本] 在Windows 8的开始菜单中创建关机/重启/注销磁贴 (VBScript)
- JS库:对象库
- 详解JRE和JDK的区别