c#介面的問題的解決方法詳解

黄舟
發布: 2017-09-19 11:17:27
原創
1936 人瀏覽過

這段時間的專案有用到接口,開始不是特別理解接口,只是單單知道接口定義非常簡單,甚至覺得這個接口只是多此一舉(個人開發的時候)。現在開始團隊開發,才發現介面原來是這麼的重要和方便!

接下來就來談談我這段時間對介面使用的粗淺見解,說的對希望大家贊,說的有誤的地方希望大家多多包涵建議!

READY GO!

介面的定義就不多說了,它有一個很重要的知識點,就是所有繼承這個介面類別的都必須實作介面中的定義,說到這個必須,在團隊開發中,只要我們商定好了接口,那我們的程式碼是不是就統一了! ! !

這是我覺得介面很重要的第一點:它便於我們統一專案的規定,便於團隊程式碼的管理!

再來用一個例子說明:

A公司決定開發一套動物系統,其中包含很多的動物,公司決定要實現每個動物的喊叫行為…

#說到這裡,我們一般就是各個程式設計師拿到自己要實現的動物類之後就開始大刀闊斧的開乾了! ! !

X程式設計師實作狗這個類,他寫一個叫喊方法void Han(){……}

#Y程式設計師實作貓這個類,他寫一個叫喊方法void Shout() {……}

M程式設計師實作豬這個類,他寫一個叫喊方法void Shout(string content){……}

………………

#好了,現在都完成了各自需要完成的動物,隔壁老王開始來實現百獸齊鳴! ! ! ! &¥%¥*%¥¥%¥一頓粗口爆出!這要怎麼寫?一個個去調用? ? ?

來看看,X程式設計師英文不太好,也沒有過多的去管,只是寫出動物叫喊的方法,Y程式設計師和M程式設計師寫的叫喊方法名稱是一樣,但M程式設計師中還要傳遞動物叫喊的內容! ! ! ! !

隔壁老王現在要讓所有動物都叫一遍就得一個動物一個動物的去調用方法…

OK,接下來開會商量,隔壁老王定義一個動物接口,所有的動物類別都得繼承這個接口,這個接口只定義一個void Shout();  (就不過多的寫東西啦,偷偷懶)

X,Y,M程式設計師繼承後,X, M立刻發現有問題,然後開始改了自己手中的類

這時老王就開始來百獸齊鳴啦!哈哈哈哈哈

接下來貼出程式碼大家看

介面


#
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace InterfaceProject
{    /// <summary>
    /// 动物接口    /// </summary>
    interface IAnimal
    {        /// <summary>
        /// 动物叫喊        /// </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("猪怎么叫来着??猪叫");
        }
    }
}
登入後複製

隔壁老王來實現百獸齊鳴(打倒老王這種角色的存在)


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);            //所有动物都叫一遍
            for (int i = 0; i < animals.Count; i++)
            {
                animals[i].Shout();
            }

            
        }
    }
}
登入後複製

我對這個介面的粗略見解就說完啦!接口這個東西雖然用起來很簡單,但我們還是要理解這個接口的作用,希望我的這篇文章能夠讓更多像我一樣的新手向接口這個東西邁出第一步

以上是c#介面的問題的解決方法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板