zoukankan      html  css  js  c++  java
  • 事件

    把客户代码关联到类通知的办法——使用事件

    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);

  • 相关阅读:
    单元测试-伪对象、桩对象、模拟对象
    单元测试那些事
    vscode 开发go版本1.14项目
    C#中的 async await
    一手遮天 Android
    一手遮天 Android
    一手遮天 Android
    一手遮天 Android
    一手遮天 Android
    一手遮天 Android
  • 原文地址:https://www.cnblogs.com/netfork/p/3721.html
Copyright © 2011-2022 走看看