事件
把客户代码关联到类通知的办法——使用事件
using System;
// 向前声明
public delegate void EventHandler(string strText);
class EventSource
{
public event EventHandler TextOut;
public void TriggerEvent()
{
if (null != TextOut) TextOut("Event triggered");
}
}
class TestApp
{
public static void Main()
{
EventSource evsrc = new EventSource();
evsrc.TextOut += new EventHandler(CatchEvent);
evsrc.TriggerEvent();
evsrc.TextOut -= new EventHandler(CatchEvent);
evsrc.TriggerEvent();
TestApp theApp = new TestApp();
evsrc.TextOut += new EventHandler(theApp.InstanceCatch);
evsrc.TriggerEvent();
}
public static void CatchEvent(string strText)
{
Console.WriteLine(strText);
}
public void InstanceCatch(string strText)
{
Console.WriteLine("Instance " + strText);
}
}
EventSource 被实例化,而静态方法CatchEvent被预关联上了 TextOut事件:
evsrc.TextOut += new EventHandler(CatchEvent);
从现在起,当事件被触发时,该方法被调用。如果对事件不再感兴趣,简单地取消关联:
evsrc.TextOut -= new EventHandler(CatchEvent);
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步