zoukankan      html  css  js  c++  java
  • C#委托的详细使用

    代码如下:

        public delegate void GreetingDelegate(string name);//定义委托,它定义了可以代表方法的类型
        class Program
        {
            public static void EnglishGreeting(string name)
            {
                Console.WriteLine("Moring,"+name);
            }
    
            public static void ChineseGreeting(string name)
            {
                Console.WriteLine("早上好,"+name);
            }
    
            //注意此方法,他接收一个GreetingDelegate类型的方法作为参数
            public static void GreetingPeople(string name,GreetingDelegate MakeGreeting) 
            {
                MakeGreeting(name);
            }
    
            static void Main(string[] args)
            {
                //版本1
                //GreetingPeople("Jake", EnglishGreeting);//英文问好
                //GreetingPeople("王旭", ChineseGreeting);//中文问好
    
                //版本2
                //string name1, name2;
                //name1 = "Jack";
                //name2 = "王旭";
                //GreetingPeople(name1,EnglishGreeting);
                //GreetingPeople(name2,ChineseGreeting);
    
                //版本3
                //GreetingDelegate delegate1, delegate2;
                //delegate1 = EnglishGreeting;
                //delegate2 = ChineseGreeting;
                //GreetingPeople("Jack",delegate1);
                //GreetingPeople("王旭",delegate2);
    
    
                //版本4
                /*
                 注意:这里第一次使用"="是赋值的语法,第二次使用"+="是绑定的语法("-="取消绑定),如果第一次就使用"+="将会出现"使用了未赋值的局部变量"的编译错误
                 */
                //GreetingDelegate delegate1;
                //delegate1 = EnglishGreeting;//先给委托类型的变量赋值
                //delegate1 += ChineseGreeting;//在给此委托变量绑定一个值
                //GreetingPeople("Jack",delegate1);//将先后调用EnglishGreeting和ChineseGreeting方法
    
                //版本5
                //GreetingDelegate delegate1;
                //delegate1 = EnglishGreeting;
                //delegate1 += ChineseGreeting;
                //delegate1("Jack");
    
                //版本6
                //GreetingDelegate delegate1 = new GreetingDelegate(EnglishGreeting);
                //delegate1 += ChineseGreeting;
                //delegate1("Jack");
    
                //版本7
                GreetingDelegate delegate1 = new GreetingDelegate(EnglishGreeting);
                delegate1 += ChineseGreeting;
                //将先后调用EnglishGreeting和ChineseGreeting方法
                GreetingPeople("Jack",delegate1);
    
                delegate1 -= EnglishGreeting;//取消对EnglishGreeting方法的绑定
                GreetingPeople("王旭",delegate1);//只显示ChineseGreeting方法
    
                Console.ReadLine();
            }
        }



  • 相关阅读:
    简易总结react-hook三大进阶
    每天25分钟总结(3)
    每天25分钟总结(2)
    PSAM卡与CPU(用户卡)的操作过程
    Flash Media Server 4.5 序列号 (fms4.5 激活码)
    张杰 我在这里 二炮手 插曲 24集 视频截取录制
    Android 模拟器 获得 root权限
    c#编程指南(十) 平台调用P-INVOKE完全掌握, 字符串和指针
    IIS7 php wordpress 中文url 标签tag中文URL404解决方法
    调整win7 Windows7下时间同步的频率时 钟同步间隔
  • 原文地址:https://www.cnblogs.com/myesn/p/5601613.html
Copyright © 2011-2022 走看看