欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

聊一聊C#接口問(wèn)題 新手速來(lái)圍觀

 更新時(shí)間:2016年08月10日 15:15:26   作者:zenkey  
聊一聊C#接口問(wèn)題,新手速來(lái)圍觀,一個(gè)通俗易懂的例子幫助大家更好的理解C#接口問(wèn)題,感興趣的小伙伴們可以參考一下

這段時(shí)間的項(xiàng)目有用到接口,開(kāi)始不是特別理解接口,只是單單知道接口定義非常簡(jiǎn)單,甚至覺(jué)得這個(gè)接口只是多此一舉(個(gè)人開(kāi)發(fā)的時(shí)候)。現(xiàn)在開(kāi)始團(tuán)隊(duì)開(kāi)發(fā),才發(fā)現(xiàn)接口原來(lái)是這么的重要和便捷! 

接下來(lái)就來(lái)談?wù)勎疫@段時(shí)間對(duì)接口使用的粗淺見(jiàn)解,說(shuō)的對(duì)希望大家贊,說(shuō)的有誤的地方希望大家多多包涵建議! 

READY GO! 

接口的定義就不多說(shuō)了,它有一個(gè)很重要的知識(shí)點(diǎn),就是所有繼承這個(gè)接口類的都必須實(shí)現(xiàn)接口中的定義,說(shuō)到這個(gè)必須,在團(tuán)隊(duì)開(kāi)發(fā)中,只要我們商定好了接口,那我們的代碼是不是就統(tǒng)一了?。?! 

這是我覺(jué)得接口重要的第一點(diǎn):它便于我們統(tǒng)一項(xiàng)目的規(guī)定,便于團(tuán)隊(duì)代碼的管理!

再來(lái)用一個(gè)例子說(shuō)明: 

A公司決定開(kāi)發(fā)一套動(dòng)物系統(tǒng),其中包含很多的動(dòng)物,公司決定要實(shí)現(xiàn)每個(gè)動(dòng)物的喊叫行為……
說(shuō)到這里,我們一般就是各個(gè)程序員拿到自己要實(shí)現(xiàn)的動(dòng)物類之后就開(kāi)始大刀闊斧的開(kāi)干了?。?!
X程序員實(shí)現(xiàn)狗這個(gè)類,他寫一個(gè)叫喊方法void Han(){……}
Y程序員實(shí)現(xiàn)貓這個(gè)類,他寫一個(gè)叫喊方法void Shout(){……}
M程序員實(shí)現(xiàn)豬這個(gè)類,他寫一個(gè)叫喊方法 void Shout(string content){……} 
……………… 

好了,現(xiàn)在都完成了各自需要完成的動(dòng)物,隔壁老王開(kāi)始來(lái)實(shí)現(xiàn)百獸齊鳴?。。。?amp;¥%¥*%¥¥%¥一頓粗口爆出!這要怎么寫?一個(gè)個(gè)去調(diào)用??? 

來(lái)看看,X程序員英語(yǔ)不太好,也沒(méi)有過(guò)多的去管,只是寫出動(dòng)物叫喊的方法,Y程序員和M程序員寫的叫喊方法名稱是一樣,但M程序員中還要傳遞動(dòng)物叫喊的內(nèi)容?。。。?! 

隔壁老王現(xiàn)在要讓所有動(dòng)物都叫一遍就得一個(gè)動(dòng)物一個(gè)動(dòng)物的去調(diào)用方法…… 

OK,接下來(lái)開(kāi)會(huì)商量,隔壁老王定義一個(gè)動(dòng)物接口,所有的動(dòng)物類都得繼承這個(gè)接口,這個(gè)接口只定義一個(gè)void Shout();  (就不過(guò)多的寫東西啦,偷偷懶) 

X,Y,M程序員繼承后,X,M立馬就發(fā)現(xiàn)有問(wèn)題,然后開(kāi)始改了自己手中的類 

這時(shí)老王就開(kāi)始來(lái)百獸齊鳴啦!哈哈哈哈哈 

接下來(lái)貼出代碼大家看 

接口 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace InterfaceProject
{
  /// <summary>
  /// 動(dòng)物接口
  /// </summary>
  interface IAnimal
  {
    /// <summary>
    /// 動(dòng)物叫喊
    /// </summary>
    void Shout();
  }
}

狗 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace InterfaceProject
{
  /// <summary>
  /// 狗
  /// </summary>
  public class Dog:IAnimal
  {
    public void Shout()
    {
      Console.WriteLine("汪汪汪");
    }
  }
}

貓 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace InterfaceProject
{
  /// <summary>
  /// 貓
  /// </summary>
  public class Cat:IAnimal
  {
    public void Shout()
    {
      Console.WriteLine("喵喵喵");
    }
  }
}

豬 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace InterfaceProject
{
  /// <summary>
  /// 豬
  /// </summary>
  public class Pig:IAnimal
  {
    public void Shout()
    {
      Console.WriteLine("豬怎么叫來(lái)著??豬叫");
    }
  }
}

隔壁老王來(lái)實(shí)現(xiàn)百獸齊鳴(打倒老王這種人物的存在) 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace InterfaceProject
{
  class Program
  {
    static void Main(string[] args)
    {
      //百獸齊鳴(這里可以使用反射來(lái)初始化所有繼承IAnimal的所有動(dòng)物,我就不寫這個(gè)了,主要看接口)
      List<IAnimal> animals = new List<IAnimal>();
      IAnimal dog = new Dog();
      animals.Add(dog);
      IAnimal cat = new Cat();
      animals.Add(cat);
      IAnimal pig = new Pig();
      animals.Add(pig);
      //所有動(dòng)物都叫一遍
      for (int i = 0; i < animals.Count; i++)
      {
        animals[i].Shout();
      }

      
    }
  }
}

我對(duì)這個(gè)接口的粗略見(jiàn)解就說(shuō)完啦!接口這個(gè)東西雖然用起來(lái)很簡(jiǎn)單,但我們還是要理解這個(gè)接口的作用,希望我的這篇文章能夠讓更多像我一樣的新手向接口這個(gè)東西邁出第一步。

相關(guān)文章

最新評(píng)論