zoukankan      html  css  js  c++  java
  • 委托的实现过程

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace 面试题案例
    {
        class 委托
        {
             public  void   初级版()
            {
                int inputSelected = 1;
                while (inputSelected == 1)
                {
                    Console.WriteLine("请输入名字");
    
                    string inputName = Console.ReadLine();
                    GreetPeople(inputName);
                    Console.WriteLine("请选择 1:继续,2:退出");
                    inputSelected = int.Parse(Console.ReadLine());
                } 
            }
            public void  过渡版()
            {          
                int inputSelected = 1;
                while (inputSelected == 1)
                {
                    Console.WriteLine("请选择国家 1:美国人 2中国人");
    
                    string inputCountry = Console.ReadLine();
                    Console.WriteLine("请输入名字");
                    string inputName = Console.ReadLine();
                    if (inputCountry == "1")
                    {
                        GreetPeople(inputName, Language.Enlish);
                    }
                    else
                    {
                        GreetPeople(inputName, Language.Chinese);
                    }
    
                    Console.WriteLine("请选择 1:继续,2:退出");
                    inputSelected = int.Parse(Console.ReadLine());
                }
            }
    
            public void 终极版()
            {
                int inputSelected = 1;
                while (inputSelected == 1)
                {
                    Console.WriteLine("请选择国家 1:美国人 2中国人");
                    string inputCountry = Console.ReadLine();
                    Console.WriteLine("请输入名字");
                    string inputName = Console.ReadLine();
                    if (inputCountry == "1")
                    {
                        GreetPeople(inputName,EnlishGreeting);
                    }
                    else
                    {
                        GreetPeople(inputName, ChineseGreeting);
                    }
                    Console.WriteLine("请选择 1:继续,2:退出");
                    inputSelected = int.Parse(Console.ReadLine());
    
                }
            }
            #region 什么是委托
            public void GreetPeople(string name)
            {
                EnlishGreeting(name); 
              
            }
            public void GreetPeople(string name, Language lang)
            {
                switch (lang)
                {
                    case Language.Enlish:
                        EnlishGreeting(name);
                        break;
                    case Language.Chinese:
                        ChineseGreeting(name);
                        break;
                }
            }
            public void EnlishGreeting(string name)
            {
    
                Console.WriteLine("GoodMorining  " + name);
                Console.ReadKey();
            }
            public void ChineseGreeting(string name)
            {
                Console.WriteLine("早上好  " + name);
                Console.ReadKey();
            }
            #endregion
    
            public enum Language
            {
                Enlish, Chinese
            }
            
            public delegate void GreetingDelegate(string name);        
    
            public void GreetPeople(string name,GreetingDelegate MakeGreeting)
            {
                MakeGreeting(name);
            }
           
        }
    }

    使用

     委托 weituo = new 委托();
                Console.WriteLine("请选择使用的版本 1: 初级版,2:过渡板  3:终极版" );
                string input_selected = Console.ReadLine();
                int flag = 1;
                while (flag==1)
                {
                    if (input_selected=="1")
                    {
                        weituo.初级版(); 
                    }
                    else if (input_selected=="2")
                    {
                        weituo.过渡版();
    
                    }
                    else if (input_selected == "3")
                    {
                        weituo.终极版();
    
                    }
                    Console.WriteLine("1 :继续 2:退出");
                    flag = int.Parse( Console.ReadLine());
    
                }
  • 相关阅读:
    饿汉模式单例模板
    QT高级01----自定义日志工具
    QT基础01----添加应用程序图标
    QML博客转载
    QML---自定义滚动条
    Mycat的做分库正确步骤
    Spring Cloud sentinel使用总结
    SpringCloud之Gateway原理解析(二)--调用过程
    SpringCloud之Gateway原理解析(一)--准备
    SpringCloud之Feign注解@EnableFeignClients
  • 原文地址:https://www.cnblogs.com/SunIan/p/10255370.html
Copyright © 2011-2022 走看看