惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The GitHub Blog
The GitHub Blog
A
About on SuperTechFans
The Cloudflare Blog
G
Google Developers Blog
博客园_首页
Martin Fowler
Martin Fowler
Apple Machine Learning Research
Apple Machine Learning Research
L
LangChain Blog
D
Docker
C
Check Point Blog
T
Tailwind CSS Blog
博客园 - 司徒正美
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Hugging Face - Blog
Hugging Face - Blog
Microsoft Security Blog
Microsoft Security Blog
V
V2EX
博客园 - 叶小钗
T
The Blog of Author Tim Ferriss
酷 壳 – CoolShell
酷 壳 – CoolShell
IT之家
IT之家
M
MIT News - Artificial intelligence
Microsoft Azure Blog
Microsoft Azure Blog
博客园 - 【当耐特】
GbyAI
GbyAI

博客园 - 超薄

符号执行虚假控制流去混淆 ios 重启usb ubuntu 搜狗输入法安装 js 反hook js 源码乱码 js和html加上混淆 js 字体加密 jj混淆 webpack 暴力方式扣取 志远js调试相关 并行算法中的异常 扩展属性应用 位运算应用口诀和实例(转自大笨狼) 数据结构实际应用----订单排序(堆排序求前N大) 数据结构Tire 树实际应用----过滤禁词 动态规划 快速排序算法 字典 DictionaryBase 和 SortedList 模式匹配文本处理 位运算
事件模式实现通知
超薄 · 2012-04-04 · via 博客园 - 超薄
class LoggerClass
{
}
public class LoggerEventArgs : EventArgs
{
public string Message { get; private set; }
public int Priority { get; private set; }
public LoggerEventArgs(int priority,string msg)
{
Priority = priority;
Message = msg;

}

}
public static struct LogerEventName
{
public static readonly string OnError = "OnError";
public static readonly string OnFail = "OnFail";
public static readonly string OnWaring = "OnWaring";

}

public sealed class Logger
{
private static Dictionary<string, EventHandler<LoggerEventArgs>> Handers = new Dictionary<string, EventHandler<LoggerEventArgs>>();
public static void AddLoger(string system,EventHandler<LoggerEventArgs> ev)
{
if (Handers.ContainsKey(system))
{
Handers[system] += ev;
}
else
{
Handers.Add(system,ev);
}
}
public static void RemoveLogger(string system,EventHandler<LoggerEventArgs> ev)
{
if (Handers.ContainsKey(system))
{
Handers[system] -= ev;
}
}

public static void AddMsg(string sytem,int priority,string msg)
{
if (string.IsNullOrEmpty(sytem) || !Handers.ContainsKey(sytem))
return;
LoggerEventArgs args = new LoggerEventArgs(priority,msg);
EventHandler<LoggerEventArgs> eventthander = null;
Handers.TryGetValue(sytem, out eventthander);
if (eventthander != null)
eventthander(null, args);
}
}