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

  • 相关阅读:
    Python全栈开发:Mysql(二)
    Python全栈开发:pymysql
    Python全栈开发:html标签
    Pandas中Series和DataFrame的索引
    回归问题的性能度量标准
    偏度和峰度的计算
    特征相似性度量
    knn算法
    贝叶斯分类器
    线性模型和逻辑回归
  • 原文地址:https://www.cnblogs.com/netfork/p/3721.html
Copyright © 2011-2022 走看看