事件示例代码
来源:互联网 发布:淘宝官方营销活动 编辑:程序博客网 时间:2024/05/02 06:10
using System;
using System.Collections.Generic;
using System.Text;
namespace Event
{
public class PubEventArgs : EventArgs
{
private readonly string m_magazineName;
private readonly DateTime m_pubDate;
public PubEventArgs(string magazineName, DateTime pubDate)
{
m_magazineName = magazineName;
m_pubDate = pubDate;
}
public string magazineName
{
get { return m_magazineName; }
}
public DateTime pubDate
{
get { return m_pubDate; }
}
}
public class Publisher
{
public delegate void PubComputerEventHandler(object sender, PubEventArgs e);
public delegate void PubLifeEventHandler(object sender, PubEventArgs e);
public event PubComputerEventHandler PubComputer;
public event PubLifeEventHandler PubLife;
protected virtual void OnPubComputer(PubEventArgs e)
{
PubComputerEventHandler handler = PubComputer;
if (handler != null)
{
handler(this, e);
}
}
protected virtual void OnPubLife(PubEventArgs e)
{
PubLifeEventHandler handler = PubLife;
if (handler != null)
{
handler(this, e);
}
}
public void issueComputer(string magazineName, DateTime pubDate)
{
Console.WriteLine("发行" + magazineName);
OnPubComputer(new PubEventArgs(magazineName, pubDate));
}
public void issueLife(string magazineName, DateTime pubDate)
{
Console.WriteLine("发行" + magazineName);
OnPubLife(new PubEventArgs(magazineName, pubDate));
}
}
public class Subscriber
{
private string name;
public Subscriber(string name)
{
this.name = name;
}
public void Receive(object sender, PubEventArgs e)
{
Console.WriteLine(e.pubDate + "" + name + "已经收到" + e.magazineName);
}
}
class EventDemo
{
static void Main(string[] args)
{
Publisher Pub = new Publisher();
Subscriber zs = new Subscriber("张三");
Pub.PubComputer += new Publisher.PubComputerEventHandler(zs.Receive);
Subscriber ls = new Subscriber("李四");
Pub.PubComputer += new Publisher.PubComputerEventHandler(ls.Receive);
Pub.PubLife += new Publisher.PubLifeEventHandler(ls.Receive);
Pub.issueComputer("电脑杂志", Convert.ToDateTime("2010-1-1"));
Pub.issueLife("生活杂志", Convert.ToDateTime("2010-1-1"));
Console.WriteLine();
Console.WriteLine("一年以后");
Pub.PubComputer -= new Publisher.PubComputerEventHandler(ls.Receive);
Pub.issueComputer("电脑杂志", Convert.ToDateTime("2011-1-1"));
Pub.issueLife("生活杂志", Convert.ToDateTime("2011-1-1"));
}
}
}
- c#事件示例代码
- 事件示例代码
- C#中使用事件(代码示例)
- 动态为事件添加js代码示例
- 动态为事件添加js代码示例
- js监听键盘事件示例代码
- 事件处理示例代码(一)
- 事件处理示例代码(二)
- opencv2+ 鼠标事件详解及示例代码
- js的onload事件及初始化按钮事件示例代码
- 事件示例
- C#中关于委托和事件的示例代码
- js动态添加事件并可传参数示例代码
- 在RowCommand事件中获取索引值示例代码
- js导航栏单击事件背景变换示例代码
- Qt学习: QCloseEvent关闭事件的使用及代码示例
- js和jquery实现监听键盘事件示例代码
- 演示事件(Event)怎样使用以及怎样为用户控件添加一个事件(示例代码下载)
- 06~PHP的一些常用函数
- 获取String类型的日期和时间
- R3 DELTA处理
- 交通灯管理系统
- struts2 文件流, 文件输出到浏览器 文件下载
- 事件示例代码
- 指向函数的指针
- PostGIS开启开源空间数据库的未来
- 面向对象软件的测试用例的设计方法
- 指针常量与常量指针,函数指针与指针函数,指针的指针
- vpn
- oracle sys 与system的区别
- 三维GIS,看上去很美
- 一年蜕变时