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

淺析C#接口之獲取IP地址

開發 后端
我們將要介紹的是C#接口之獲取IP地址,接口好比一種模版,這種模版定義了對象必須實現的方法。

我們今天要討論C#接口之獲取IP地址,通過這一實例,我們能更深刻的了解C#接口。希望本文能對大家了解C#接口有所幫助。

通過對IP地址獲取的了解,由于對業務不甚了解,我采用接口編程來實現getIP():

接口好比一種模版,這種模版定義了對象必須實現的方法,其目的就是讓這些方法可以作為接口實例被引用。接口不能被實例化。類可以實現多個接口并且通過這些實現的接口被索引。接口變量只能索引實現該接口的類的實例。

說明:

1、C#中的接口是獨立于類來定義的。這與C++模型是對立的,在 C++中接口實際上就是抽象基類。

2、接口和類都可以繼承多個接口。

3、而類可以繼承一個基類,接口根本不能繼承類。這種模型避免了 C++的多繼承問題,C++中不同基類中的實現可能出現沖突。因此也不再需要諸如虛擬繼承和顯式作用域這類復雜機制。C#的簡化接口模型有助于加快應用程序的開發。

4、一個接口定義一個只有抽象成員的引用類型。C#中一個接口實際所做的,僅僅只存在著方法標志,但根本就沒有執行代碼。這就暗示了不能實例化一個接口,只能實例化一個派生自該接口的對象。

5、接口可以定義方法、屬性和索引。所以,對比一個類,接口的特殊性是:當定義一個類時,可以派生自多重接口,而你只能可以從僅有的一個類派生。

(一)定義接口:

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

定義接口的一般形式為:

[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:對接口成員的定義。

(二)訪問接口:

 對接口方法的調用和采用索引指示器訪問的規則與類中的情況也是相同的。如果底層成員的命名與繼承而來的高層成員一致,那么底層成員將覆蓋同名的高層成員。但由于接口支持多繼承,在多繼承中,如果兩個父接口含有同名的成員,這就產生了二義性(這也正是C#中取消了類的多繼承機制的原因之一),這時需要進行顯式的定義。

 在C#中,接口內的所有方法默認都是公用方法。

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

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

(三)實現接口:

 1、顯式實現接口成員

為了實現接口,類可以定義顯式接口成員執行體(Explicit interface member implementations)。顯式接口成員執行體可以是一個方法、一個屬性、一個事件或者是一個索引指示器的定義,定義與該成員對應的全權名應保持一致。

 2、繼承接口實現

接口具有不變性,但這并不意味著接口不再發展。類似于類的繼承性,接口也可以繼承和發展。

注意:接口繼承和類繼承不同,首先,類繼承不僅是說明繼承,而且也是實現繼承;而接口繼承只是說明繼承。也就是說,派生類可以繼承基類的方法實現,而派生的接口只繼承了父接口的成員方法說明,而沒有繼承父接口的實現,其次,C#中類繼承只允許單繼承,但是接口繼承允許多繼承,一個子接口可以有多個父接口。

接口可以從零或多個接口中繼承。從多個接口中繼承時,用":"后跟被繼承的接口名字,多個接口名之間用","分割。被繼承的接口應該是可以訪問得到的,比如從private 類型或internal 類型的接口中繼承就是不允許的。接口不允許直接或間接地從自身繼承。和類的繼承相似,接口的繼承也形成接口之間的層次結構。

3、重新實現接口

我們已經介紹過,派生類可以對基類中已經定義的成員方法進行重載。類似的概念引入到類對接口的實現中來,叫做接口的重實現(re-implementation)。繼承了接口實現的類可以對接口進行重實現。這個接口要求是在類定義的基類列表中出現過的。對接口的重實現也必須嚴格地遵守首次實現接口的規則,派生的接口映射不會對為接口的重實現所建立的接口映射產生任何影響。

4、映射接口

類必須為在基類表中列出的所有接口的成員提供具體的實現。在類中定位接口成員的實現稱之為接口映射(interface mapping )。

映射,數學上表示一一對應的函數關系。接口映射的含義也是一樣,接口通過類來實現,那么對于在接口中定義的每一個成員,都應該對應著類的一個成員來為它提供具體的實現。

類的成員及其所映射的接口成員之間必須滿足下列條件:

1、如果A和B都是成員方法,那么A和B的名稱、類型、形參表(包括參數個數和每一個參數的類型)都應該是一致的。

2、如果A和B都是屬性,那么A和B的名稱、類型應當一致,而且A和B的訪問器也是類似的。但如果A不是顯式接口成員執行體,A允許增加自己的訪問器。

3、如果A和B都是時間那么A和B的名稱、類型應當一致。

4、如果A和B都是索引指示器,那么A和B的類型、形參表(包括參數個數和每一個參數的類型)應當一致。而且A和B的訪問器也是類似的。但如果A不是顯式接口成員執行體,A允許增加自己的訪問器。

那么,對于一個接口成員,怎樣確定由哪一個類的成員來實現呢?即一個接口成員映射的是哪一個類的成員?在這里,我們敘述一下接口映射的過程。假設類C實現了一個接口IInterface,Member是接口IInterface中的一個成員,在定位由誰來實現接口成員Member,即Member的映射過程是這樣的:

1、如果C中存在著一個顯式接口成員執行體,該執行體與接口IInterface 及其成員Member相對應,則由它來實現Member 成員。

2、如果條件(1)不滿足,且C中存在著一個非靜態的公有成員,該成員與接口成員Member相對應,則由它來實現Member 成員。

3、如果上述條件仍不滿足,則在類C定義的基類列表中尋找一個C 的基類D,用D來代替C。

4、重復步驟1-- 3 ,遍歷C的所有直接基類和非直接基類,直到找到一個滿足條件的類的成員。

5、如果仍然沒有找到,則報告錯誤。

在進行接口映射時,還要注意下面兩點:

1、在決定由類中的哪個成員來實現接口成員時,類中顯式說明的C#接口成員比其它成員優先實現。

2、使用Private、protected和static修飾符的成員不能參與實現接口映射。

【編輯推薦】

  1. C#參差數組初始化概述
  2. C#數組初始化全面分析
  3. C#一維數組和多維數組淺談
  4. C#參差數組初始化概述
  5. C#動態數組實例介紹
責任編輯:彭凡 來源: CSDN
相關推薦

2009-08-25 17:59:49

C#入門

2009-08-27 17:59:56

C#接口定義

2009-08-07 08:53:52

C# ICloneab

2009-08-31 16:48:02

C#實現IDispos

2009-09-01 18:29:24

C#實現多個接口

2009-08-31 17:02:28

C#接口編程

2009-09-28 14:45:22

C#接口的定義

2009-08-24 15:12:13

C# 泛型接口

2009-08-11 09:19:52

C#選擇排序C#算法

2009-08-20 10:25:37

C#操作內存

2009-08-27 13:05:06

C#接口特點C#接口實例

2009-08-31 16:37:20

C#接口定義

2009-08-27 14:29:28

顯式實現接口

2009-08-27 18:09:49

C#接口的實現

2009-08-24 11:20:03

C#接口

2009-08-19 17:20:22

C# 操作符

2009-08-19 15:47:09

C#操作Access

2009-08-07 17:25:37

C# SortedLi

2009-08-18 16:42:49

C# 操作XML

2009-08-19 15:55:42

C#操作Access
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产乱码精品一区二三赶尸艳谈 | 欧美自拍一区 | 欧美精品第一区 | 成人网av | 免费h视频| 99热播精品 | 毛片在线看看 | 蜜桃视频在线观看免费视频网站www | 日日操夜夜摸 | 久久中文字幕视频 | 国产一区二区三区 | 国产在线视频一区 | 日韩精品一区二区三区在线播放 | 黄色片在线 | 欧美精品在线一区 | 91欧美精品 | 91免费高清视频 | 狠狠操电影 | 欧美一级免费看 | 国产精品久久久久久高潮 | 中文字幕97 | 观看毛片| 久久久精品日本 | 一级免费看片 | 波多野结衣一区二区三区在线观看 | 日韩在线精品视频 | 亚洲精品乱码久久久久久蜜桃 | 黄色大片免费播放 | 国产精品美女视频 | 九色一区| 婷婷不卡 | 九九精品视频在线 | 国产91一区二区三区 | 中文字幕免费视频 | 久久成人免费 | 欧美激情国产日韩精品一区18 | 人人干人人干人人干 | 成人av播放 | 欧美日韩a| 欧美日韩精品一区二区三区四区 | 中文字幕在线第一页 |