委托 和 事件
来源:互联网 发布:手机喊麦软件 编辑:程序博客网 时间:2024/04/29 11:54
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplicationTest1
{
/// <summary>
/// 定义了一个事件参数的类
/// 因为要放得是事件参数。所以要继承EventArgs类。这是放事件参数的基类
/// </summary>
public class MyEventArgs : EventArgs
{
private string message;
//构造函数
public MyEventArgs(string mess)
{
this.message = mess;
}
public string Message
{
get
{
return message;
}
}
}
/// <summary>
/// 定义一个委托。委托除了delegate关键字。
/// 别的应该和赋予的那个方法格式一样
/// </summary>
public delegate void delegateMyEventHandler(object sender, MyEventArgs myE);
/// <summary>
/// 事件发布者
/// </summary>
internal class Publisher
{
//定义一个事件的对象
public event delegateMyEventHandler MyEvent;
public void RaiseEvent()
{
MyEventArgs e = new MyEventArgs("helloword");
//触发事件
if (MyEvent != null)
{
MyEvent(this, e);
}
}
}
/// <summary>
/// 事件订阅者
/// </summary>
internal class Subscribe
{
private string id;
public Subscribe(string id, Publisher publisher1)
{
this.id = id;
publisher1.MyEvent += new delegateMyEventHandler(publisher1_MyEvent);
}
/// <summary>
/// 定义事件的处理方法
/// </summary>
public void publisher1_MyEvent(object sender, MyEventArgs myargs)
{
Console.WriteLine(id + "received message:{0}", myargs.Message);
}
}
internal class Program
{
private static void Main(string[] args)
{
Publisher p1 = new Publisher();
Subscribe s1 = new Subscribe("s1", p1);
Subscribe s2 = new Subscribe("s2", p1);
p1.RaiseEvent();
Console.WriteLine("Press Enter to close this window.");
Console.ReadLine();
}
}
}
- c# 委托和委托事件
- 委托和事件
- 委托和事件
- 委托和事件
- 委托和事件
- 委托和事件
- 事件和委托
- 委托和事件
- 事件和委托学习
- 关于委托和事件
- C# 委托和事件
- 委托和事件
- 委托和事件
- 事件和委托
- 委托和事件
- 委托和事件
- 委托和事件
- 委托和事件
- Asp.net(c#)实现多线程断点续传下载大文件
- JAVA 与 EXCEL的完美整合工具:JXL
- C调试方法之--------Gprofile
- Google code jam 2012 番外篇:巨款的人民币面值组合
- Android OTA 升级之三:生成recovery.img
- 委托 和 事件
- prim最小生成树
- macbook air 下配置andorid开发环境(系统版本mountain lion 10.7.3)
- Android OTA 升级之四:进入根文件系统
- 第一个程序:"Hello World"
- 输出流 HTTP MIME类型列表
- Android OTA 升级之五:updater
- 一个字符串,输出字符串中连续最长的数字串,并输出个数
- C#的代理和事件