zoukankan      html  css  js  c++  java
  • C# 委托及匿名函数

    一、 为什么使用委托,代码如下;(注释掉的是没用委托之前的使用方式,没有注释的是使用了委托的

                       

      public delegate string DelProStr(string name);
    class Program
    {
    static void Main(string[] args)
    {
    //三个需求
    //1、将一个字符串数组中每个元素都转换成大写
    //2、将一个字符串数组中每个元素都转换成小写
    //3、将一个字符串数组中每个元素两边都加上 双引号
    string[] names = { "abCDefG", "HIJKlmnOP", "QRsTuvW", "XyZ" };
    //ProStToUpper(names);
    //ProStrToLower(names);
    // ProStrSYH(names);
    
    ProStr(names, delegate(string name)
    {
    return """ + name + """;
    });
    for (int i = 0; i < names.Length; i++)
    {
    Console.WriteLine(names[i]);
    }
    Console.ReadKey();
    }
    
    
    public static void ProStr(string[] name, DelProStr del)
    {
    for (int i = 0; i < name.Length; i++)
    {
    name[i] = del(name[i]);
    }
    }
    
    //public static string StrToUpper(string name)
    //{
    // return name.ToUpper();
    //}
    
    //public static string StrToLower(string name)
    //{
    // return name.ToLower();
    //}
    
    //public static string StrSYH(string name)
    //{
    // return """ + name + """;
    //}
    
    
    //public static void ProStToUpper(string[] name)
    //{
    // for (int i = 0; i < name.Length; i++)
    // {
    // name[i] = name[i].ToUpper();
    // }
    //}
    //public static void ProStrToLower(string[] name)
    //{
    // for (int i = 0; i < name.Length; i++)
    // {
    // name[i] = name[i].ToLower();
    // }
    //}
    //public static void ProStrSYH(string[] names)
    //{
    // for (int i = 0; i < names.Length; i++)
    // {
    // names[i] = """ + names[i] + """;
    // }
    //}
    
    
    }

    二、委托的概念:

          把一个方法当作参数传递给另一个方法去执行。

         

    //声明一个委托指向一个函数
    public delegate void DelSayHi(string name);
    class Program
    {
    static void Main(string[] args)
    {
    //DelSayHi del = SayHiEnglish;//new DelSayHi(SayHiEnglish);
    //del("张三");
    //Console.ReadKey();
    //Test("张三", SayHiChinese);
    //Test("李四", SayHiEnglish);
    //Console.ReadKey();
    }
    public static void Test(string name,DelSayHi del)
    {
    del(name); //调用
    }
    public static void SayHiChinese(string name)
    {
    Console.WriteLine("吃了么?" + name);
    }
    public static void SayHiEnglish(string name)
    {
    Console.WriteLine("Nice to meet you" + name);
    }
    }
    View Code

    作者:课间一起牛

    出处:https://www.cnblogs.com/mhg215/

    声援博主:如果您觉得文章对您有帮助,请点击文章末尾的【关注我】吧!

    别忘记点击文章右下角的【推荐】支持一波。~~~///(^v^)\~~~ .

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

    如果您有其他问题,也欢迎关注我下方的公众号,可以联系我一起交流切磋!

     B站: 课间一起牛的B站         知乎:课间一起牛的知乎

    码云:课间一起牛的码云      github:课间一起牛的github

  • 相关阅读:
    jQuery遍历节点方法汇总
    python_30期自动化【艺龙酒店】
    python_30期【条件判断语句】
    python_30期【os模块 path处理路径】
    python_30期自动化【类的封装】
    python_30期【函数里面的位置参数/默认参数】
    python_30期【while循环】
    python_30期【http_requsts】
    python_30期【类方法之间的调用 return】
    python_30期【实例函数 类里面的函数】
  • 原文地址:https://www.cnblogs.com/mhg215/p/8570577.html
Copyright © 2011-2022 走看看