• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
4℃空间
众人笑我痴 我笑他人看不懂
   首页    新随笔    联系   管理    订阅  订阅

如何编写属于自己的事件集合

public class MyEvent
{
/// <summary>
/// 定义某一类事件的名称
/// </summary>
private const string EventName = "MyEvent";
/// <summary>
/// 定义某一类事件的名称
/// </summary>
private const string EventName1 = "MyEvent1";
/// <summary>
/// 事件集合
/// </summary>
private readonly Dictionary<string, List<object>> EventDic = new Dictionary<string, List<object>>();

/// <summary>
/// 定义事件代理句柄
/// </summary>
/// <param name="obj"></param>
public delegate void MyHandler(object obj);
/// <summary>
/// 定义事件代理句柄
/// </summary>
/// <param name="obj"></param>
public delegate void MyHandler1(string obj);

public event MyHandler MyEvents
{
add
{
EventDic[EventName].Add(value);
}
remove
{
EventDic[EventName].Remove(value);
}
}
public event MyHandler1 MyEvents1
{
add
{
EventDic[EventName1].Add(value);
}
remove
{
EventDic[EventName1].Remove(value);
}
}

public MyEvent()
{
EventDic.Add(EventName, new List<object>());//添加一类事件集合
EventDic.Add(EventName1, new List<object>());//添加一类事件集合
}

public void Run()
{
if (EventDic[EventName].Count == 0)
return;
foreach (object obj in EventDic[EventName])
{
(obj as MyHandler)(1);
}
}
public void Run1()
{
if (EventDic[EventName1].Count == 0)
return;
foreach (object obj in EventDic[EventName1])
{
(obj as MyHandler1)("");
}
}

}

 

posted @ 2011-12-29 15:14  magic_evan  阅读(223)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3