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);
            }
  • 相关阅读:
    centos7下如何使用udev配置asm磁盘
    ORA-29786: SIHA attribute GET failed with error [Attribute 'SPFILE' sts[200]
    安装grid时报INS-40404错误
    clickhouse编译安装
    centos7通过rc.local文件添加自启动服务
    Error in invoking target 'agent nmhs' of makefile
    打补丁(18370031)
    2020 HFCTF
    2020省赛决赛
    2020西湖论剑
  • 原文地址:https://www.cnblogs.com/51net/p/4191909.html
Copyright © 2011-2022 走看看