zoukankan      html  css  js  c++  java
  • 委托

    委托的含义是:委托是对函数的封装,可以当作给方法的特征指定一个名称,而事件只是委托的一种特殊形式,当发生有意义的事,事件对象处理通知的过程。委托是一种引用方法的类型,一旦为委托分配方法,委托将与该方法具有相同的行为。

    委托对象的关键字是delegate 用法: public delegate void CatShoutEventHandler();

    事件对象关键字 even 用法:public event CatShoutEventHandler CatShout;

    下面有个代码例子是关于猫来了,对老鼠的通知。是通过委托实现的,这些知识都是通过大话设计模式中学习到的,具体代码如下:

    namespace MyDelegate
    {
        class Cat
        {
            private string name;
            public Cat(string name)
            {
                this.name = name;
            }
            public delegate void CatShoutEventHandler();
            public event CatShoutEventHandler catShout;
            public void Shout()
            {
                Console.WriteLine("瞄,我是{0}", name);
                if (catShout != null)
                {
                    catShout();
                }
            }
        }
    }

    namespace MyDelegate
    {
        class Mouse
        {
            private string name;
            public Mouse(string name)
            {
                this.name = name;
            }
            public void Run() {
                Console.WriteLine("猫来了,{0}快跑", name);
            }
        }
    }

    namespace MyDelegate {     class Program     {         static void Main(string[] args)         {             Cat cat = new Cat("Tom");             Mouse mouse1 = new Mouse("Jack");             Mouse mouse2 = new Mouse("Jerry");             cat.catShout += new Cat.CatShoutEventHandler(mouse1.Run);             cat.catShout += new Cat.CatShoutEventHandler(mouse2.Run);             cat.Shout();             Console.ReadLine();

            }     } }

  • 相关阅读:
    Navicat连接MySQL数据库的一些问题与解决方案
    从select机制谈到epoll机制
    关于VS2017提示I/O文件操作函数需要加上_s的解决办法
    LeetCode初级算法(树篇)
    LeetCode初级算法(动态规划+设计问题篇)
    LeetCode初级算法(其他篇)
    Leetcode初级算法(排序和搜索+数学篇)
    Leetcode初级算法(链表篇)
    Leetcode初级算法(字符串篇)
    机器学习之k-近邻算法
  • 原文地址:https://www.cnblogs.com/chmblog/p/5630701.html
Copyright © 2011-2022 走看看