程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> c#接口深入一步探究其作用,適合新人了解,

c#接口深入一步探究其作用,適合新人了解,

編輯:C#入門知識

c#接口深入一步探究其作用,適合新人了解,


前言

  前一篇淺顯的述說了一下c#接口的作用,並用了一個不怎麼好的例子述說了一下。時隔一天,在看完大家的評論後我在論壇中查看了很多前輩們對c#接口的描述,發現大家對例子的說明不是太容易讓我們這些新人理解。接下來,就用我這個新手的角度再來闡述一遍。哈哈哈哈……

理論改編故事

  A公司在經過“百獸齊鳴”的事件後汲取了教訓,老王也開始用接口這個東西來進行項目的管理。為此,他輕松了不少,沾沾自喜中也就沒有去探究接口的其它作用了(沒有影射大家,純屬為了編故事)。

  這天,A公司下達了一個新的需求,需要實現由某一個人帶著一種動物出去遛彎。老王看到這個需求,輕哼一聲:我有接口我怕誰,改接口讓小的們去實現相關行為去。

  老王在接口中加了一個 void Walk(string people);下達命令,小的們,趕快實現各個動物中的行為,我要遛彎啦!哈哈哈

  大家匆匆實現好了各自動物的Walk行為後老王就開始來實現某人帶動物遛彎的功能了。

  然後他寫出了這種代碼:

  

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace InterfaceProject { /// <summary> /// 人 /// </summary> public class People { /// <summary> /// 姓名 /// </summary> private string name; public string Name { get { return name; } set { name = value; } } #region 帶動物遛彎 public void WalkWithAnimal(Dog dog) { dog.Walk(this.name); } public void WalkWithAnimal(Cat cat) { cat.Walk(this.name); } public void WalkWithAnimal(Pig pig) { pig.Walk(this.name); } #endregion } } View Code

  就這樣,安穩過了一段時間。突然有一天,A公司來了一批新動物分發到了各個程序員手中,大家快速的完成了各個動物類。

  這時,老王傻眼了。臥槽,這尼瑪有1000多個動物,我得寫1000個遛彎的東西啊!!!!!天啦!

  老王現在知道了問題所在,立馬在Zenkey的博客中查找解決方案,終於,他發現了這篇文章(哈哈哈哈)

  在尋求了解決方法後,他立馬改了代碼又去得意去了……

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace InterfaceProject { /// <summary> /// 人 /// </summary> public class People { /// <summary> /// 姓名 /// </summary> private string name; public string Name { get { return name; } set { name = value; } } public People(string name) { this.Name = name; } #region 帶動物遛彎 public void WalkWithAnimal(IAnimal animal) { animal.Walk(this.name); } //public void WalkWithAnimal(Dog dog) //{ // dog.Walk(this.name); //} //public void WalkWithAnimal(Cat cat) //{ // cat.Walk(this.name); //} //public void WalkWithAnimal(Pig pig) //{ // pig.Walk(this.name); //} #endregion } } View Code

  得意之余,帶所有動物輪流遛彎去!!!

 

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)
        {
            //百獸齊鳴(這裡可以使用反射來初始化所有繼承IAnimal的所有動物,我就不寫這個了,主要看接口)
            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);

            //老王王帶所有動物都遛一遍
            People p = new People("老王");
            for (int i = 0; i < animals.Count; i++)
            {
                p.WalkWithAnimal(animals[i]);
            }
        }
    }
}

 

總結

  不知道大家根據這個故事都理解到了什麼,這篇文章後我也就不再探究接口的作用了,目前在公司中用接口的這些功能已經讓我輕松了不少,希望所有新手都能在我這裡將接口這個神物摸索清楚。

  如果有看不明白的請結合上一篇淺談c#接口來看。

  如果大家贊同請點贊,如果我述說的有不妥的地方希望大家海涵並指出,我們共同進步。

  

 

 

  

  1. 上一頁:
  2. 下一頁: