成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C#接口的定義詳解

開(kāi)發(fā) 后端
C#接口的定義在我們編程的過(guò)程中是什么角色呢?C#接口的定義的是如何實(shí)現(xiàn)的呢?C#接口的定義需要注意的是什么呢?那么本文就向你介紹這些內(nèi)容。

全面解析C#接口的定義
C#接口的定義從技術(shù)上講,接口是一組包含了函數(shù)型方法的數(shù)據(jù)結(jié)構(gòu)。通過(guò)這組數(shù)據(jù)結(jié)構(gòu),客戶(hù)代碼可以調(diào)用組件對(duì)象的功能。

C#接口的定義一般形式為:

  1. [attributes] [modifiers] interface identifier [:base-list] {interface-body}[;]  

C#接口的定義說(shuō)明:

· attributes(可選):附加的定義性信息。

· modifiers(可選):允許使用的修飾符有new和四個(gè)訪(fǎng)問(wèn)修飾符。分別是:new、public、protected、internal、private。在一個(gè)接口定義中同一修飾符不允許出現(xiàn)多次,new修飾符只能出現(xiàn)在嵌套接口中,表示覆蓋了繼承而來(lái)的同名成員。The public, protected, internal, and private修飾符定義了對(duì)接口的訪(fǎng)問(wèn)權(quán)限。

· 指示器和事件。

· identifier:接口名稱(chēng)。

· base-list(可選):包含一個(gè)或多個(gè)顯式基接口的列表,接口間由逗號(hào)分隔。

· interface-body:對(duì)接口成員的定義。

· 接口可以是命名空間或類(lèi)的成員,并且可以包含下列成員的簽名: 方法、屬性、索引器 。

· 一個(gè)接口可從一個(gè)或多個(gè)基接口繼承。

接口這個(gè)概念在C#和Java中非常相似。接口的關(guān)鍵詞是interface,一個(gè)接口可以擴(kuò)展一個(gè)或者多個(gè)其他接口。按照慣例,接口的名字以大寫(xiě)字母"I"開(kāi)頭。下面的代碼是C#接口的一個(gè)例子,它與Java中的接口完全一樣:

  1. interface IShape  {   
  2.     void Draw ( ) ;  
  3. }  

如果你從兩個(gè)或者兩個(gè)以上的接口派生,父接口的名字列表用逗號(hào)分隔,如下面的代碼所示:

  1. interface INewInterface: IParent1, IParent2 { }  

然而,與Java不同,C#中的接口不能包含域(Field)。另外還要注意,在C#中,接口內(nèi)的所有方法默認(rèn)都是公用方法。在Java中,方法定義可以帶有public修飾符(即使這并非必要),但在C#中,顯式為接口的方法指定public修飾符是非法的。例如,下面的C#接口將產(chǎn)生一個(gè)編譯錯(cuò)誤。

  1. interface IShape { public void Draw( ) ; }  

下面的例子定義了一個(gè)名為IControl 的接口,接口中包含一個(gè)成員方法Paint:

  1. interface IControl {  
  2. void Paint( ) ;  
  3. }  

在下例中,接口 IInterface從兩個(gè)基接口 IBase1 和 IBase2 繼承:

  1. interface IInterface: IBase1, IBase2 {  
  2.    void Method1( ) ;  
  3.    void Method2( ) ;  
  4. }  

接口可由類(lèi)實(shí)現(xiàn)。實(shí)現(xiàn)的接口的標(biāo)識(shí)符出現(xiàn)在類(lèi)的基列表中。例如:

  1. class Class1: Iface1, Iface2 {  
  2.    // class 成員。  

類(lèi)的基列表同時(shí)包含基類(lèi)和接口時(shí),列表中首先出現(xiàn)的是基類(lèi)。例如:

  1. class ClassA: BaseClass, Iface1, Iface2 {  
  2.    // class成員。  

以下的代碼段定義接口IFace,它只有一個(gè)方法:

  1. interface IFace {  
  2.   void ShowMyFace( ) ;  

不能從這個(gè)定義實(shí)例化一個(gè)對(duì)象,但可以從它派生一個(gè)類(lèi)。因此,該類(lèi)必須實(shí)現(xiàn)ShowMyFace抽象方法:

  1. class CFace:IFace  
  2. {  
  3.   public void ShowMyFace( )   {  
  4.     Console.WriteLine(" implementation " ) ;  
  5.    }   

C#接口的定義之基接口

一個(gè)接口可以從零或多個(gè)接口繼承,那些被稱(chēng)為這個(gè)接口的顯式基接口。當(dāng)一個(gè)接口有比零多的顯式基接口時(shí),那么在接口的定義中的形式為,接口標(biāo)識(shí)符后面跟著由一個(gè)冒號(hào)":"和一個(gè)用逗號(hào)","分開(kāi)的基接口標(biāo)識(shí)符列表。

C#接口的定義之接口基:

接口類(lèi)型列表說(shuō)明:

· 一個(gè)接口的顯式基接口必須至少同接口本身一樣可訪(fǎng)問(wèn)。例如,在一個(gè)公共接口的基接口中指定一個(gè)私有或內(nèi)部的接口是錯(cuò)誤的。

· 一個(gè)接口直接或間接地從它自己繼承是錯(cuò)誤的。

· 接口的基接口都是顯式基接口,并且是它們的基接口。換句話(huà)說(shuō),基接口的集合完全由顯式基接口和它們的顯式基接口等等組成。在下面的例子中

  1. interface IControl {  
  2.  void Paint( ) ;  
  3. }  
  4. interface ITextBox: IControl {  
  5.  void SetText(string text) ;  
  6. }  
  7. interface IListBox: IControl {  
  8.  void SetItems(string[] items) ;  
  9. }  
  10. interface IComboBox: ITextBox, IListBox { }  

IComboBox 的基接口是IControl, ITextBox, 和 IlistBox。

· 一個(gè)接口繼承它的基接口的所有成員。換句話(huà)說(shuō),上面的接口IComboBox就像Paint一樣繼承成員SetText 和 SetItems。

· 一個(gè)實(shí)現(xiàn)了接口的類(lèi)或結(jié)構(gòu)也隱含地實(shí)現(xiàn)了所有接口的基接口。

C#接口的定義之接口主體

一個(gè)接口的接口主體定義接口的成員。

  1. interface-body:  
  2. {   interface-member-declarationsopt   }  

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

【編輯推薦】

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

2009-08-25 10:44:08

C#接口定義接口

2009-09-24 15:20:54

C#接口定義

2009-08-25 10:57:09

C#接口

2009-09-28 14:45:22

C#接口的定義

2009-08-13 14:46:03

C#結(jié)構(gòu)體定義

2009-08-31 16:23:13

C#接口

2025-05-12 03:10:00

接口方法代碼

2009-08-27 17:59:56

C#接口定義

2009-08-03 18:26:18

C#定義接口成員

2009-08-12 15:55:12

C#接口定義

2009-09-07 18:08:25

C#鼠標(biāo)指針

2009-08-31 16:37:20

C#接口定義

2009-08-24 11:02:52

C#接口映射

2009-08-24 09:55:26

C#接口轉(zhuǎn)換

2009-08-13 15:41:50

C#結(jié)構(gòu)體指針

2009-08-06 15:40:11

C#裝箱和拆箱

2009-01-19 10:26:02

C#Namespace.NET

2009-08-24 10:06:31

C#接口成員

2009-09-11 11:04:23

C# WinForm自

2009-08-31 13:18:09

C# IWebMess
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 国产精品黄色 | 美女久久久久久久 | 欧美日韩精品国产 | 成人国产精品久久久 | 亚洲欧美在线观看视频 | 午夜视频在线免费观看 | 免费色网址| 91精品久久久久久久久久入口 | 色综合色综合 | 亚洲国产午夜 | 天天操天天操 | 色综合视频在线 | 一级大片免费 | 日日日干干干 | 久久99精品国产 | 天堂成人国产精品一区 | 中文字幕乱码一区二区三区 | 性欧美hd | 午夜在线电影网 | 国产精品久久九九 | 国产网站在线播放 | 精品一区二区三区在线视频 | 91视频一区二区 | 精品小视频 | 日本不卡免费新一二三区 | 九九九国产 | 国产黄色av网站 | 中文字幕免费视频 | 手机av免费在线 | 日本不卡高字幕在线2019 | 日本久久网 | 91久操视频 | 欧美日韩一区二区视频在线观看 | 免费的av网站| 91精品在线看 | 精品中文字幕在线 | 久久国产亚洲精品 | 狠狠久| 91性高湖久久久久久久久_久久99 | 色资源站 | 亚洲综合区 |