事件
来源:互联网 发布:java 动态代理用途 编辑:程序博客网 时间:2024/06/12 00:57
using System;
class Publisher//出版社
...{
public delegate void PubComputer(string magazineName);//声明发布电脑杂志事件所需的代理
public delegate void PubLife(string magazineName);//声明发布生活杂志事件所需的代理
public event PubComputer OnPubComputer;//事件的声明
public event PubLife OnPubLife;//事件的声明
public void issueComputer()//触发事件的方法
...{
if (OnPubComputer != null)
...{
Console.WriteLine("发行<<电脑杂志>>");
OnPubComputer("电脑杂志");
}
}
public void issueLife()
...{
if (OnPubLife != null)
...{
Console.WriteLine("发行<<生活杂志>>");
OnPubLife("生活杂志");
}
}
}
class Subscriber
...{
private string name;
public Subscriber(string name)
...{
this.name = name;
}
public void Receive(string magazineName)
...{
Console.WriteLine(name + "已经收到了" + magazineName);
}
}
class Story
...{
static void Main()
...{
Publisher Pub = new Publisher();
Subscriber zs = new Subscriber("张三");
Pub.OnPubComputer += new Publisher.PubComputer(zs.Receive);
Subscriber ls = new Subscriber("李四");
Pub.OnPubComputer += new Publisher.PubComputer(ls.Receive);
Pub.OnPubLife += new Publisher.PubLife(ls.Receive);
Pub.issueComputer();
Pub.issueLife();
Console.WriteLine();
Console.WriteLine("一年后");
Pub.OnPubComputer -= new Publisher.PubComputer(ls.Receive);
Pub.issueComputer();
Pub.issueLife();
}
}
class Publisher//出版社
...{
public delegate void PubComputer(string magazineName);//声明发布电脑杂志事件所需的代理
public delegate void PubLife(string magazineName);//声明发布生活杂志事件所需的代理
public event PubComputer OnPubComputer;//事件的声明
public event PubLife OnPubLife;//事件的声明
public void issueComputer()//触发事件的方法
...{
if (OnPubComputer != null)
...{
Console.WriteLine("发行<<电脑杂志>>");
OnPubComputer("电脑杂志");
}
}
public void issueLife()
...{
if (OnPubLife != null)
...{
Console.WriteLine("发行<<生活杂志>>");
OnPubLife("生活杂志");
}
}
}
class Subscriber
...{
private string name;
public Subscriber(string name)
...{
this.name = name;
}
public void Receive(string magazineName)
...{
Console.WriteLine(name + "已经收到了" + magazineName);
}
}
class Story
...{
static void Main()
...{
Publisher Pub = new Publisher();
Subscriber zs = new Subscriber("张三");
Pub.OnPubComputer += new Publisher.PubComputer(zs.Receive);
Subscriber ls = new Subscriber("李四");
Pub.OnPubComputer += new Publisher.PubComputer(ls.Receive);
Pub.OnPubLife += new Publisher.PubLife(ls.Receive);
Pub.issueComputer();
Pub.issueLife();
Console.WriteLine();
Console.WriteLine("一年后");
Pub.OnPubComputer -= new Publisher.PubComputer(ls.Receive);
Pub.issueComputer();
Pub.issueLife();
}
}
- 事件
- 事件
- 事件
- 事件
- 事件
- 事件
- 事件
- 事件
- 事件
- 事件
- 事件
- 事件
- 事件
- 事件
- 事件
- 事件
- 事件
- 事件
- ORA-01033: ORACLE initialization or shutdown in progress数据文件损坏错误解决方案
- 一机建多站之玩转Windows2003
- C#中时间差的计算http://www.yaosansi.com/blog/article.asp?id=466
- 医院分级与分等
- 不能删除的文件夹
- 事件
- 一位软件工程师的6年总结
- Oracle中SubStr函数用法
- strcmp函数和strcpy函数
- gcc创建共享库
- 浏览器跨域获取特定域的数据的办法
- C#中使用Hook
- 移动技术--从网页游戏谈起 3--网页游戏与移动设备
- 浅谈 delegate