C#編程利器之三:介面(Interface)

來源:互聯網
上載者:User

C#介面是一個讓很多初學者容易迷糊的東西,用起來好象很簡單,定義介面,然後在裡面定義方法, 通過繼承與他的子類來完成具體的實現。但沒有真正認識介面的作用的時候就覺得用介面是多此一舉,當 然你這樣想是絕對錯誤的。在軟體設計中有一個非常重要的原則就是:面向介面編程,依賴與介面或抽象 層。可見介面在真正的開發中是多麼的重要。

在之前C#編程利器之一:類(Class)一文裡介紹了類的相關知識,本文主要介紹OO編程中的另一個重要 知識點--介面。在某種程度上說,介面也是類,一種特殊的類或抽象類別。 更準確說介面只包含方法、委 托或事件的簽名。方法的實現是在實現介面的類中完成的[MSDN]。

一、介面的定義

如上MSDN上對介面的定義,介面只包含方法、委託或事件的簽名。這句話用更通俗點的解釋便是,接 口只是負責完成定義的操作,而不去實現具體的細節。如下面的IPlayer介面,它是一個玩遊戲的介面, 裡面只是定義了相應的方法,而不帶方法的具體實現,代碼如下:

1/**//// <summary>
2/// 玩遊戲介面
3/// </summary>
4public interface IPlayer
5{
6  /**//// <summary>
7  /// 擷取玩家的名字
8  /// </summary>
9  /// <returns>玩家的名字</returns>
10  string GetName();
11
12  /**//// <summary>
13  /// 由Player決定出什麼手勢
14  /// </summary>
15  /// <returns>本介面定義的三個常量之一</returns>
16  string Show();
17}

以上就是一個典型的介面的定義。定義了一個名為IPlayer的介面,內部定義了兩個方法GetName和 Show。除了在介面裡定義方法以外,我們還可以定義屬性、索引及事件等,詳細請查看MSDN上的定義或是 相關書籍,這裡以屬性為例簡單介紹下,在介面裡只能定義不實現,具體的實現是交給其子類去完成的, 那麼屬性應該怎麼定義呢?

通常我們定義屬性如下:

1/**//// <summary>
2/// 定義_Name屬性,並提供get;set屬性訪問器
3/// </summary>
4private string _Name;
5public string Name
6{
7  get { return _Name; }
8  set { _Name = value; }
9}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.