• 黑马程序员——对委托的初步理解


        今天看到论坛里有人问委托的问题,想想自己也搞不懂委托到底是什么东西,好像以前稍微看过一点但没具体怎么看,所以今天就看了一些资料。

        看完后,我的理解是这样的,这只是初步的理解,不对的请见谅,希望提出来,共同进步。

        委托呢其实就是一个方法的大集合,就像枚举一样,它把要用的方法都存到了里面,当要调用什么方法的时候就直接写出这个方法的名字,就能够实现调用,特别方便,避免了复杂的判断过程,这样说可能很难理解,我在博客原理看的一篇讲解文章,人家举了一个相当浅显易懂的例子。

        列子如下:

    public void EnglishGreeting(string name) {
        Console.WriteLine("Morning, " + name);
    }

    public void ChineseGreeting(string name){
        Console.WriteLine("早上好, " + name);
    }

    public enum Language{     //定义枚举
        English, Chinese
    }

    public void GreetPeople(string name, Language lang){
            swith(lang){
            case Language.English:
               EnglishGreeting(name);
               break;
           case Language.Chinese:
               ChineseGreeting(name);
               break;
        }
    }

    大家看到了,上面有两个方法一个是中文问好:ChineseGreeting,一个英文:Console.WriteLine("Morning, " + name);

    由于遇到中国人要用中文方法,外国人要用英文方法,所以就得定义个枚举用swith case进行判断,这是不是很麻烦??

    还好有委托帮咱们大忙,修改上面的代码

    public delegate void GreetingDelegate(string names);  //委托

        class Program
        { private static void EnglishGreeting(string name) {
                   Console.WriteLine("Morning, " + name);
               }

               private static void ChineseGreeting(string name) {
                   Console.WriteLine("早上好, " + name);
               }

               //注意多了个参数makegreeting,这个参数就是指定委托哪个方法去执行
               private static void GreetPeople(string name, GreetingDelegate MakeGreeting)
               {
                   MakeGreeting(name);
               }

    调用GreetPeople

     static void Main(string[] args)
            {
                GreetPeople("Jimmy Zhang", EnglishGreeting);
                GreetPeople("张子阳", ChineseGreeting);
                Console.ReadKey();
              

            }

    看出来了吧,委托就是这样简单,说白了就是委托给谁去办这件事。

  • 相关阅读:
    数据结构之排序查找算法
    Spring3之IOC
    SQL使用范例
    数据结构之链表操作
    VI的使用
    数据结构之树的操作
    Hibernate学习笔记
    Spring3之AOP
    01.由一个程序开始(一)
    Linux的档案权限及目录配置(一) (2)
  • 原文地址:https://www.cnblogs.com/weiwin/p/2570368.html
Copyright © 2020-2023  润新知