溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

C#接口成員舉例分析

發(fā)布時(shí)間:2021-12-01 13:53:04 來源:億速云 閱讀:145 作者:iii 欄目:編程語言

本篇內(nèi)容介紹了“C#接口成員舉例分析”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

C#接口編程之接口成員定義說明:

·接口的成員是從基接口繼承的成員和由接口本身定義的成員。

·接口定義可以定義零個(gè)或多個(gè)成員。接口的成員必須是方法、屬性、事件或索引器。接口不能包含常數(shù)、字段、運(yùn)算符、實(shí)例構(gòu)造函數(shù)、析構(gòu)函數(shù)或類型,也不能包含任何種類的靜態(tài)成員。

·定義一個(gè)接口,該接口對(duì)于每種可能種類的成員都包含一個(gè):方法、屬性、事件和索引器。

·接口成員默認(rèn)訪問方式是public。接口成員定義不能包含任何修飾符,比如成員定義前不能加abstract,public,protected,internal,private,virtual,override 或static 修飾符。

·接口的成員之間不能相互同名。繼承而來的成員不用再定義,但接口可以定義與繼承而來的成員同名的成員,這時(shí)我們說接口成員覆蓋了繼承而來的成員,這不會(huì)導(dǎo)致錯(cuò)誤,但編譯器會(huì)給出一個(gè)警告。關(guān)閉警告提示的方式是在成員定義前加上一個(gè)new關(guān)鍵字。但如果沒有覆蓋父接口中的成員,使用new關(guān)鍵字會(huì)導(dǎo)致編譯器發(fā)出警告。

·方法的名稱必須與同一接口中定義的所有屬性和事件的名稱不同。此外,方法的簽名必須與同一接口中定義的所有其他方法的簽名不同。

·屬性或事件的名稱必須與同一接口中定義的所有其他成員的名稱不同。

·一個(gè)索引器的簽名必須區(qū)別于在同一接口中定義的其他所有索引器的簽名。

·接口方法聲明中的屬性(attributes), 返回類型(return-type), 標(biāo)識(shí)符(identifier)和形式參數(shù)列表(formal-parameter-lis)與一個(gè)類的方法聲明中的那些有相同的意義。一個(gè)接口方法聲明不允許指定一個(gè)方法主體,而聲明通常用一個(gè)分號(hào)結(jié)束。

·接口屬性聲明的訪問符與類屬性聲明的訪問符相對(duì)應(yīng),除了訪問符主體通常必須用分號(hào)。因此,無論屬性是讀寫、只讀或只寫,訪問符都完全確定。

·接口索引聲明中的屬性(attributes),類型(type)和形式參數(shù)列表(formal-parameter-list)與類的索引聲明的那些有相同的意義。

下面例子中接口IMyTest包含了索引指示器、事件E、方法F、屬性P這些成員:

interface IMyTest{  string this[int index] { get; set; }  event EventHandler E ;  void F(int value)  ;  string P { get; set; }  }  public delegate void EventHandler(object sender, EventArgs e) ;

下面例子中接口IStringList包含每個(gè)可能類型成員的接口:一個(gè)方法,一個(gè)屬性,一個(gè)事件和一個(gè)索引。

public delegate void StringListEvent(IStringList sender);  public interface IStringList  {  void Add(string s);  int Count { get; }  event StringListEvent Changed;  string this[int index] { get; set; }  }

C#接口編程之接口成員的全權(quán)名

使用接口成員也可采用全權(quán)名(fully qualified name)。接口的全權(quán)名稱是這樣構(gòu)成的。接口名加小圓點(diǎn)"." 再跟成員名比如對(duì)于下面兩個(gè)接口:

interface IControl {  void Paint( ) ;  }  interface ITextBox: IControl {  void GetText(string text) ;  }

其中Paint 的全權(quán)名是IControl.Paint,GetText的全權(quán)名是ITextBox. GetText。當(dāng)然,全權(quán)名中的成員名稱必須是在接口中已經(jīng)定義過的,比如使用ITextBox.Paint.就是不合理的。

如果接口是名字空間的成員,全權(quán)名還必須包含名字空間的名稱。

namespace System  {  public interface IDataTable {  object Clone( ) ;  }  }

那么Clone方法的全權(quán)名是System. IDataTable.Clone。

“C#接口成員舉例分析”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI