C#接口定義實(shí)例淺析
MSDN上的C#接口定義所述,接口只包含方法、委托或事件的簽名。這句話用更通俗點(diǎn)的解釋便是,接口只是負(fù)責(zé)完成定義的操作,而不去實(shí)現(xiàn)具體的細(xì)節(jié)。如下面的IPlayer接口,它是一個(gè)玩游戲的接口,里面只是定義了相應(yīng)的方法,而不帶方法的具體實(shí)現(xiàn)
C#接口定義實(shí)例代碼如下:
- /**//// <summary>
- /// 玩游戲接口
- /// </summary>
- public interface IPlayer
- {
- /**//// <summary>
- /// 獲取玩家的名字
- /// </summary>
- /// <returns>玩家的名字</returns>
- string GetName();
- /**//// <summary>
- /// 由Player決定出什么手勢(shì)
- /// </summary>
- /// <returns>本接口定義的三個(gè)常量之一</returns>
- string Show();
- }
以上就是一個(gè)典型的接口的定義。定義了一個(gè)名為IPlayer的接口,內(nèi)部定義了兩個(gè)方法GetName和Show。除了在接口里定義方法以外,我們還可以定義屬性、索引及事件等,詳細(xì)請(qǐng)查看MSDN上的定義或是相關(guān)書籍,這里以屬性為例簡單介紹下,在接口里只能定義不實(shí)現(xiàn),具體的實(shí)現(xiàn)是交給其子類去完成的,那么屬性應(yīng)該怎么定義呢?
通常我們C#接口定義屬性如下:
- /**//// <summary>
- /// 定義_Name屬性,并提供get;set屬性訪問器
- /// </summary>
- private string _Name;
- public string Name
- {
- get { return _Name; }
- set { _Name = value; }
- }
那么在接口中又是怎么定義屬性,并讓其子類去實(shí)現(xiàn)呢?如下代碼段:
- /**//// <summary>
- /// 定義接口,并在接口里定義一名為Name的屬性
- /// </summary>
- public interface IAttribute
- {
- string Name { get;set;}
- }
- /**//// <summary>
- /// 定義一個(gè)類去繼承IAttribute接口,并實(shí)現(xiàn)其屬性
- /// </summary>
- public class Component : IAttribute
- {
- public string Name
- {
- get
- {
- return "張三";
- }
- set
- {
- this.Name = value;
- }
- }
- }
C#接口定義實(shí)例的相關(guān)內(nèi)容就向你介紹到這里,希望對(duì)你了解和學(xué)習(xí)C#接口定義有所幫助。
【編輯推薦】