天天看點

委托

委托

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("治療");         }  

   }

筆者原創!如果您覺得閱讀本文對您有幫助,請點一下“推薦”按鈕,您的“推薦”将是我最大的寫作動力!歡迎各位轉載,轉載請添加原部落格連接配接,否則保留追究法律責任的權利,謝謝!

YC.Boilerplate 快速開發架構交流,請加群:1060819005

區塊鍊交流請加QQ群:538327407(已滿),群2:135019400.

我的部落格位址:http://www.cnblogs.com/linbin524/

繼續閱讀