zoukankan      html  css  js  c++  java
  • 多播委托和事件

    事件的创造规则是类型必须是一个委托的类型,也就是说是委托实例化了事件

    事例代码如下:

    这是两个以后要被委托的方法:

    public class EventManager
        {
            //第一个方法
            public void Add(int i,int j) 
            {
                int res = i + j;
                MessageBox.Show(res.ToString());
            }
            //第二个方法
            public void SayHello(int i,int j) 
            {
                MessageBox.Show("hello word"+(i*j).ToString());
            }
    
        }

    这是委托以及时间的创造过程,包括了多播委托,每次创建一个新的委托放在事件上,就要新new一次委托,如此会创建一个委托队列:

            //创建委托
            public delegate void Num(int i, int j);
            //根据委托实例化事件,这里的事件只需要实例化一次
            public event Num caculate;
    
            private void button1_Click(object sender, EventArgs e)
            {
                EventManager em = new EventManager();
                //使用委托重载参数相同的实现方法
                Num num = new Num(em.Add);
                //使用事件绑定委托Add方法
                caculate += num;
                //使用事件绑定第二个说helloWord的方法
                caculate += new Num(em.SayHello);
                //在这里只需要对事件穿第一次参数,事件的参数就会传入到每一个委托的方法里面执行得到不同的结果
                this.caculate(5,5);
            }
  • 相关阅读:
    JS中的this
    VS下遇到未能加载文件或程序集 错误
    观察者模式实现INotifyPropertyChanged
    看书不仔细的下场
    Android 解析XML
    杂想
    Android 对话框用法
    Android之AlertDialog.Builder详解
    Android:开机自启动并接收推送消息
    Clojure:通过ZeroMQ推送消息
  • 原文地址:https://www.cnblogs.com/llcdbk/p/4455390.html
Copyright © 2011-2022 走看看