zoukankan      html  css  js  c++  java
  • c#委托把方法当成参数

     //定义委托,它定义了可以代表的方法的类型
            public delegate void GreetingDelegate(string name);
    
            /// <summary>
            /// 用英文打招呼
            /// </summary>
            /// <param name="name"></param>
    
            private void EnglishGreeting(string name)
            {
                Console.WriteLine("Morning, " + name);
            }
    
            /// <summary>
            /// 用中文打招呼
            /// </summary>
            /// <param name="name"></param>
    
            private void ChineseGreeting(string name)
            {
                Console.WriteLine("早上好, " + name);
            }
    
            //注意此方法,它接受一个GreetingDelegate类型的方法作为参数
            /// <summary>
            /// 委托(代理的方法)
            /// </summary>
            /// <param name="name"></param>
            /// <param name="markGreeting"></param>
    
            private void GreetPeople(string name, GreetingDelegate MakeGreeting)
            {
                MakeGreeting(name);
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                //Delegate方式一:
                //GreetPeople("Jimmy Zhang", EnglishGreeting);
                //GreetPeople("张子阳", ChineseGreeting);
                //Console.ReadKey();
    
                //Action方式二:
                GreetPeopleAction("Jimmy Zhang", (s) =>
                {
                    Console.WriteLine("Morning, " + s);
                });
    
                GreetPeopleAction("张子阳", (s) =>
                {
                    Console.WriteLine("早少好, " + s);
                });
    
                Console.ReadKey();
            }
    
            /// <summary>
            /// Action委托作为参数
            /// </summary>
            /// <param name="name"></param>
            /// <param name="action"></param>
            public void GreetPeopleAction(string name, Action<string> action)
            {
                action(name);
            }
  • 相关阅读:
    从scanf的学习接口设计
    特现C语言编程特点的小代码,itoa,数值转换成字符串
    So many good projects for studying C programming lanuage.
    重要算法代码
    选择一本C++教材
    4412 内核模块传参数
    4412 GPIO初始化
    4412 物理地址
    4412 杂项设备
    4412 Linux设备总线
  • 原文地址:https://www.cnblogs.com/51net/p/4191909.html
Copyright © 2011-2022 走看看