当前位置: 移动技术网 > IT编程>开发语言>c# > c#委托把方法当成参数(实例讲解)

c#委托把方法当成参数(实例讲解)

2019年07月18日  | 移动技术网IT编程  | 我要评论

静态方法代理:

复制代码 代码如下:

public delegate void dogreeting(string name);

class program
    {
        [stathread]
        static void main(string[] args)
        {
            //方法名当成参数传给委托类型调用
            markgreeting("张三", greetingenglish);
            markgreeting("李四", greetingchinese);
        }

        /// <summary>
        /// 委托(代理的方法)
        /// </summary>
        /// <param name="name"></param>
        /// <param name="markgreeting"></param>
        private static void markgreeting(string name, dogreeting markgreeting)
        {
            markgreeting(name);
        }

        /// <summary>
        /// 用英文打招呼
        /// </summary>
        /// <param name="name"></param>
        private static void greetingenglish(string name)
        {
           console.writeline(name+"hello!");
        }

        /// <summary>
        /// 用中文打招呼
        /// </summary>
        /// <param name="name"></param>
        private static void greetingchinese(string name)
        {
            console.writeline(name+"你好!");
        }
    }


实例方法代理:
复制代码 代码如下:

 public delegate void dogreeting(string name);

    public class greeting
    {
        /// <summary>
        /// 委托(代理的方法)
        /// </summary>
        /// <param name="name"></param>
        /// <param name="markgreeting"></param>
        public void markgreeting(string name, dogreeting markgreeting)
        {
            markgreeting(name);
        }

        /// <summary>
        /// 用英文打招呼
        /// </summary>
        /// <param name="name"></param>
        public  void greetingenglish(string name)
        {
            console.writeline(name + "hello!");
        }

        /// <summary>
        /// 用中文打招呼
        /// </summary>
        /// <param name="name"></param>
        public void greetingchinese(string name)
        {
            console.writeline(name + "你好!");
        }
    }

    class program
    {
        [stathread]
        static void main(string[] args)
        {
            greeting greetingobj = new greeting();

            greetingobj.markgreeting("张三", greetingobj.greetingenglish);
            greetingobj.markgreeting("李四", greetingobj.greetingchinese);

        }

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网