自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C#接口編程之接口成員淺析

開(kāi)發(fā) 后端
C#接口編程之接口成員是如何的呢?讓我們首先了解接口的含義,以及C#接口編程之接口成員的全權(quán)名,希望對(duì)你了解誒C#接口編程之接口成員有所幫助。

C#接口編程之接口成員定義之前我們來(lái)看看C#接口,它可以包含一個(gè)和多個(gè)成員,這些成員可以是方法、屬性、索引指示器和事件,但不能是常量、域、操作符、構(gòu)造函數(shù)或析構(gòu)函數(shù),而且不能包含任何靜態(tài)成員。接口定義創(chuàng)建新的定義空間,并且接口定義直接包含的接口成員定義將新成員引入該定義空間。

C#接口編程之接口成員定義說(shuō)明:

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

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

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

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

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

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

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

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

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

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

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

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

  1. interface IMyTest{  
  2. string this[int index] { getset; }  
  3. event EventHandler E ;  
  4. void F(int value)  ;  
  5. string P { getset; }  
  6. }  
  7. public delegate void EventHandler(object sender, EventArgs e) ;  

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

  1. public delegate void StringListEvent(IStringList sender);  
  2. public interface IStringList  
  3. {  
  4. void Add(string s);  
  5. int Count { get; }  
  6. event StringListEvent Changed;  
  7. string this[int index] { getset; }  
  8. }  

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

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

  1. interface IControl {  
  2. void Paint( ) ;  
  3. }  
  4. interface ITextBox: IControl {  
  5. void GetText(string text) ;  

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

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

  1. namespace System  
  2. {  
  3. public interface IDataTable {  
  4. object Clone( ) ;  
  5. }  
  6. }  

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

C#接口編程之接口成員定義的基本內(nèi)容和相關(guān)介紹就講述到這里,希望對(duì)你了解和學(xué)習(xí)掌握C#接口編程之接口成員有所幫助。

【編輯推薦】

  1. C#水晶報(bào)表數(shù)據(jù)的獲取方法實(shí)例淺析
  2. .Net水晶報(bào)表使用學(xué)習(xí)的九大步驟
  3. C#接口定義及實(shí)例應(yīng)用淺析
  4. 詳解C#接口以及實(shí)現(xiàn)
  5. C#接口的定義詳解
責(zé)任編輯:仲衡 來(lái)源: ccidnet.com
相關(guān)推薦

2009-08-24 10:06:31

C#接口成員

2009-08-24 11:02:52

C#接口映射

2009-08-24 09:55:26

C#接口轉(zhuǎn)換

2009-08-03 18:26:18

C#定義接口成員

2009-08-31 16:48:02

C#實(shí)現(xiàn)IDispos

2009-08-07 08:53:52

C# ICloneab

2009-08-27 17:59:56

C#接口定義

2009-08-25 10:44:08

C#接口定義接口

2009-09-01 18:29:24

C#實(shí)現(xiàn)多個(gè)接口

2009-08-25 10:57:09

C#接口

2009-09-02 14:26:50

C#對(duì)接口成員訪問(wèn)

2009-09-28 14:45:22

C#接口的定義

2009-08-24 15:12:13

C# 泛型接口

2009-08-31 18:17:32

C#接口編程

2009-08-27 13:05:06

C#接口特點(diǎn)C#接口實(shí)例

2009-08-31 16:37:20

C#接口定義

2009-09-18 19:21:17

C#接口

2009-08-27 18:09:49

C#接口的實(shí)現(xiàn)

2009-08-27 14:29:28

顯式實(shí)現(xiàn)接口

2009-08-18 10:30:30

C#枚舉
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)