六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

基于C#的接口基礎圖文說明教程之二

[摘要]第二節 定義接口  從技術上講,接口是一組包含了函數型方法的數據結構。通過這組數據結構,客戶代碼可以調用組件對象的功能。  定義接口的一般形式為:[attributes] [modifiers] interface identifier [:base-list] interface-body[;]...

  第二節 定義接口

  從技術上講,接口是一組包含了函數型方法的數據結構。通過這組數據結構,客戶代碼可以調用組件對象的功能。

  定義接口的一般形式為:


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

  說明:

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

  2、modifiers(可選): 允許使用的修飾符有 new 和四個訪問修飾符。分別是:new、public、protected、internal、 private。在一個接口定義中同一修飾符不允許出現多次,new 修飾符只能出現在嵌套接口中,表示覆蓋了繼承而來的同名成員。The public, protected, internal, and private 修飾符定義了對接口的訪問權限。

  3、指示器和事件。

  4、identifier:接口名稱。

  5、base-list(可選):包含一個或多個顯式基接口的列表,接口間由逗號分隔。

  6、interface-body:對接口成員的定義。

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

  8、一個接口可從一個或多個基接口繼承。

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


interface IShape {
 void Draw ( ) ;
}

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


interface INewInterface: IParent1, IParent2 { } 

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


interface IShape { public void Draw( ) ; }

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


interface IControl {
 void Paint( ) ;

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


interface IInterface: IBase1, IBase2 {
 void Method1( ) ;
 void Method2( ) ;

  接口可由類實現。實現的接口的標識符出現在類的基列表中。例如:


class Class1: Iface1, Iface2 {
 // class 成員。
}

  類的基列表同時包含基類和接口時,列表中首先出現的是基類。例如:


class ClassA: BaseClass, Iface1, Iface2 {
 // class成員。
}

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


interface IFace {
 void ShowMyFace( ) ;
}

  不能從這個定義實例化一個對象,但可以從它派生一個類。因此,該類必須實現ShowMyFace抽象方法:


class CFace:IFace
{
 public void ShowMyFace( ) {
  Console.WriteLine(" implementation " ) ;
 }

  基接口

  一個接口可以從零或多個接口繼承,那些被稱為這個接口的顯式基接口。當一個接口有比零多的顯式基接口時,那么在接口的定義中的形式為,接口標識符后面跟著由一個冒號":"和一個用逗號","分開的基接口標識符列表。

  接口基:

  :接口類型列表說明:

  1、一個接口的顯式基接口必須至少同接口本身一樣可訪問。例如,在一個公共接口的基接口中指定一個私有或內部的接口是錯誤的。

  2、一個接口直接或間接地從它自己繼承是錯誤的。

  3、接口的基接口都是顯式基接口,并且是它們的基接口。換句話說,基接口的集合完全由顯式基接口和它們的顯式基接口等等組成。在下面的例子中


interface IControl {
 void Paint( ) ;
}
interface ITextBox: IControl {
 void SetText(string text) ;
}
interface IListBox: IControl {
 void SetItems(string[] items) ;
}
interface IComboBox: ITextBox, IListBox { }

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

  4、一個接口繼承它的基接口的所有成員。換句話說,上面的接口 IComboBox 就像Paint一樣繼承成員SetText 和 SetItems。

  5、一個實現了接口的類或結構也隱含地實現了所有接口的基接口。

  接口主體

  一個接口的接口主體定義接口的成員。


interface-body:
{ interface-member-declarationsopt }

  定義接口主要是定義接口成員,請看下一節--定義接口成員。

 




主站蜘蛛池模板: 日本一区二区视频在线 | 日日摸日日 | 日韩国产欧美 | 三级国产在线 | 日本美女视频韩国视频网站免费 | 日韩一卡2卡3卡新区网站 | 亚洲 欧美 成人日韩 | 视频一区二区中文字幕 | 欧美一级黄色大片 | 四虎影院在线免费观看视频 | 日本午夜在线视频 | 日本精品欧洲www | 色站综合| 日本不卡视频在线观看 | 婷婷综合激情网 | 亚洲成人激情片 | 日韩一级二级三级 | 日本视频一区在线观看免费 | 日本成人在线网站 | 日本高清一本视频 | 青青国产在线播放 | 亚洲精品午夜在线观看 | 亚洲高清资源在线观看 | 亚洲永久在线 | 一级成人a免费视频 | 亚洲精品一二三四区 | 青草视频在线观看免费视频 | 羞羞漫画在线阅读页面漫画入口页面弹窗无限 | 在线观看91香蕉国产免费 | 天天躁日日躁成人字幕aⅴ 天天躁日日躁 疯人影院 | 日本三级理论 | 欧美系列在线观看 | 天天插日日插 | 日日噜噜噜夜夜爽爽狠狠 | 亚洲国产精品欧美综合 | 亚洲va中文字幕无码 | 日韩免费高清一级毛片在线 | 四虎影院在线视频 | 中文字幕午夜乱理片 | 亚洲国产成人久久综合一区77 | 日韩免费中文字幕 |