event(学习一)
来源:互联网 发布:antlr python 编辑:程序博客网 时间:2024/06/03 14:51
/*事件是类在发生其关注的事件时用来提供通知的一种方式
*
*/
using System;
using System.Collections.Generic;
using System.Text;
namespace Event
{
public class Publisher //出版社
{
public delegate void PubComputer(string AMagazineName);//声明事件代理
public delegate void PubLife(string AMagazineName);
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("生活雜志");
}
}
}
public class Subscriber //订阅者
{
private string _Name;
public Subscriber(string AName)
{
this._Name = AName;
}
//以下方法的參數和返回值必須和OnPubComputer代理一樣
public void Receive(string AMagazineName)
{
Console.WriteLine(_Name + "已經收到" + AMagazineName);
}
}
class Story
{
static void Main()
{
Publisher Pub = new Publisher();
Subscriber Sub = new Subscriber("張三");
//實際上是事件實現動態加載方法
Pub.OnPubComputer += new Publisher.PubComputer(Sub.Receive);
Subscriber Sub1 = new Subscriber("李四");
Pub.OnPubLife += new Publisher.PubLife(Sub1.Receive);
Pub.IssueComputer(); //触发事件
Pub.IssueLife();
Pub.OnPubLife -= new Publisher.PubLife(Sub1.Receive);
Pub.IssueComputer(); //触发事件
Pub.IssueLife();
Console.ReadLine();
}
}
}
以下是显示结果
- event(学习一)
- js event对象学习(一)
- QT学习记录(一)事件 (event)
- libevent源码学习(一)event事件
- security information and event management 学习初探(一)
- WebKit DOM Event (一)
- Event对象(一)
- 初学Event(一)
- Event学习(二)
- YUI 学习笔记:Event
- C#学习之Event
- MySQL 定时器EVENT学习
- Qt Event Dispatcher学习
- MySQL 定时器EVENT学习
- MySQL 定时器EVENT学习
- window.event对象学习
- JAVA学习---HANDLE EVENT
- MySQL 定时器EVENT学习
- 防止网页被ifr
- SQLSERVER操作实例
- 防止网页被切屏
- access加密后c#连接字符串
- WebRequest实现读取天气预报信息
- event(学习一)
- Jbpm中的Jndi问题解决
- 鼠标点击图片翻转,滚动放大
- php 不同服务器共享session问题
- 网页滚动条样式
- thumb.db是什么
- 字母自动换行
- 终于解决Oracle10GR1在linux下安装界面的乱码问题
- META标签的奥妙