程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#編程利器之三:接口(Interface)(1)

C#編程利器之三:接口(Interface)(1)

編輯:關於C語言

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}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved