zoukankan      html  css  js  c++  java
  • C#委托

        刚开始在C#视频中就看到了委托,到了大话中首先还是看这些基础知识,对于委托我始终不太理解,因此我就上网查了一些资料并且结合自己的理解,来介绍一下委托。

        【汉语】

         把事情托付给别人或别的机构。

        【百度给出的定义】

        委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用If-Else(Switch)语句,同时使得程序具有更好的可扩展性。

        【我的理解】

         委托相当于就是一个函数,它有某种功能,其变量是一种方法,通过委托能够间接的调用该方法。实际上委托时对函数的封装。

         理解了委托之后我们应该怎样应用呢?首先就是要定义一个委托,这跟一般的类没有差别,感觉到了熟悉。

        //声明委托 CatShoutEventHandler
        public delegate void CatShoutEventHandler();

        定义一个方法

    class Mouse
    {
        private string name;
        public Mouse(string name)
        {
            this.name = name;
        }
        //定义了一个方法
        public void Run()
        {
            Console.WriteLine("老猫来了,{0}快跑!",name );
        }
    }
          实例化该委托,并实现调用

    cat.CatShout += new Cat.CatShoutEventHandler(mouse1.Run);
                cat.CatShout += new Cat.CatShoutEventHandler(mouse2.Run);

          注意:委托实例化后还是一个委托,通过委托调用mouse.Run的方法,实现间接调用,避免直接去修改Mouse这个类,这符合开放-封闭原则。
         【总结】

          委托,就是实现了调用一个方法,一旦委托分配了方法,委托将具有与该方法完全相同的行为。这是我暂时的理解,在以后模式中还会再次深刻讨论委托,期待对委托有更深刻的理解。





  • 相关阅读:
    UVA 11488 Hyper Prefix Sets (字典树)
    UVALive 3295 Counting Triangles
    POJ 2752 Seek the Name, Seek the Fame (KMP)
    UVA 11584 Partitioning by Palindromes (字符串区间dp)
    UVA 11100 The Trip, 2007 (贪心)
    JXNU暑期选拔赛
    计蒜客---N的-2进制表示
    计蒜客---线段的总长
    计蒜客---最大质因数
    JustOj 2009: P1016 (dp)
  • 原文地址:https://www.cnblogs.com/zsswpb/p/5771674.html
Copyright © 2011-2022 走看看