zoukankan      html  css  js  c++  java
  • 委托

    1、接口:
    
        接口与抽象类一样,也是表示某种规则,一旦使用了该规则,就必须实现相关的方法。对于C#语言而言,由于只能继承自一个父类,因此若有多个规则需要实现,则使用接口是个比较好的做法。
    
     
    
    2、接口的定义
    
    interface 接口名
    
    {
    
        方法声明;
    
    }
    
     
    
    3、不同接口中若有多个相同名称的方法,则需要显式指定接口名,例如:
    
                           
    
    4、接口的使用
    
    使用接口也可以实现多态。
    
    代码如下:
    
    class Program
    
    {
    
        static void Main(string[] args)
    
        {
    
            //提供三个类,完成工资的计算
    
            List<ICalu> list = new List<ICalu>();
    
            list.Add(new Boss());
    
            list.Add(new Clert());
    
            list.Add(new Clert());
    
            list.Add(new Customer());
    
            foreach (ICalu emp in list)
    
            {
    
                emp.Calu(); //多态
    
            }
    
        }
    
    }
    
    class Boss : ICalu
    
    {
    
        public  void Calu()
    
        {
    
            Console.WriteLine("计算老板工资");
    
        }
    
     
    
    }
    
    class Customer : ICalu
    
    {
    
        public  void Calu()
    
        {
    
            Console.WriteLine("计算客户工资");
    
        }
    
    }
    
    class Clert : ICalu
    
    {
    
        public  void Calu()
    
        {
    
            Console.WriteLine("计算职员工资");
    
        }
    
    }
    
    interface ICalu
    
    {
    
        void Calu();
    
    }
    
     
    
     
    
    5、接口应用场合举例
    
     6、接口demo
    
    using System;
    
    using System.Collections.Generic;
    
    using System.Linq; using System.Text;
    
    namespace ConsoleApplication1 {
    
        class Program     {     
    
        static void Main(string[] args)         {    
    
             List<IShow> list = new List<IShow>();      
    
           list.Add(new Map());     
    
            list.Add(new Voice());   
    
              list.Add(new Video());    
    
             list.Add(new ThreeD());
    
                foreach(IShow ishow in list)             {      
    
               ishow.Show();             }   
    
          }  
    
       }  
    
        interface IShow     {    
    
         void Show();     }   
    
      public class Map:IShow     {    
    
         public void Show()      
    
       {       
    
          Console.WriteLine("显示图片");         }    
    
    }  
    
       public class Voice : IShow     {    
    
         public void Show()         {   
    
              Console.WriteLine("播放声音");         }
    
        }   
    
      public class Video : IShow     {   
    
          public void Show()   
    
          {         
    
        Console.WriteLine("显示视频");         }  
    
       }     public class ThreeD : IShow     {  
    
           public void Show()         {    
    
             Console.WriteLine("3D交互");         }    
    
    }
    
    }
    
     

    using System;

    using System.Collections.Generic;

    using System.Linq; using System.Text;

    namespace ConsoleApplication2 {

        public delegate void Mydel();  

       class Program     {       

      static void Main(string[] args)         {    

             Hospital h = new Hospital();       

          People LaoWang = new People();  

               LaoWang.OnEatTooMuch += new Mydel(h.Check);    

             LaoWang.Eat(10);         }   

                  }

        class People     {    

         public event Mydel OnEatTooMuch;    

         public void Eat(int i)         {       

          if(i<3)             {  

                   Console.WriteLine("吃的太少");             }  

               else if(i==3)             {                 Console.WriteLine("吃的正好");             }   

              else if (i <=5)             {                 Console.WriteLine("吃的多了点");             }    

             else             {                 if(OnEatTooMuch!=null)        

             {    

                     OnEatTooMuch();                 }   

              }     

        }    

    }

        class Hospital     {   

          public void Check()         {             Console.WriteLine("治疗");         }  

       }

    }

  • 相关阅读:
    Wide & Deep Learning for Recommender Systems
    两个经典问题
    Vlog简介
    中文dumps显示
    用Python提取中文关键词
    【STL】算法 — partial_sort
    c字符串分割 strtok()
    JSP的声明(statement)
    layui之ajax巨坑
    jQuery 库中的 $() 是什么?(答案如下)
  • 原文地址:https://www.cnblogs.com/linbin524/p/3554782.html
Copyright © 2011-2022 走看看