基于C#的接口基礎(chǔ)教程之三_.Net教程
推薦:基于C#的接口基礎(chǔ)教程之二 第二節(jié) 定義接口 從技術(shù)上講,接口是一組包含了函數(shù)型方法的數(shù)據(jù)結(jié)構(gòu)。通過這組數(shù)據(jù)結(jié)構(gòu),客戶代碼可以調(diào)用組件對(duì)象的功能。 定義接口的一般形式為: [attributes] [m
第三節(jié) 定義接口成員
接口可以包含一個(gè)和多個(gè)成員,這些成員可以是方法、屬性、索引指示器和事件,但不能是常量、域、操作符、構(gòu)造函數(shù)或析構(gòu)函數(shù),而且不能包含任何靜態(tài)成員。接口定義創(chuàng)建新的定義空間,并且接口定義直 接包含的接口成員定義將新成員引入該定義空間。
說明:
1、接口的成員是從基接口繼承的成員和由接口本身定義的成員。
2、接口定義可以定義零個(gè)或多個(gè)成員。接口的成員必須是方法、屬性、事件或索引器。接口不能包含常數(shù)、字段、運(yùn)算符、實(shí)例構(gòu)造函數(shù)、析構(gòu)函數(shù)或類型,也不能包含任何種類的靜態(tài)成員。
3、定義一個(gè)接口,該接口對(duì)于每種可能種類的成員都包含一個(gè):方法、屬性、事件和索引器。
4、接口成員默認(rèn)訪問方式是public。接口成員定義不能包含任何修飾符,比如成員定義前不能加abstract,public,protected,internal,private,virtual,override 或static 修飾符。
5、接口的成員之間不能相互同名。繼承而來的成員不用再定義,但接口可以定義與繼承而來的成員同名的成員,這時(shí)我們說接口成員覆蓋了繼承而來的成員,這不會(huì)導(dǎo)致錯(cuò)誤,但編譯器會(huì)給出一個(gè)警告。關(guān)閉警告提示的方式是在成員定義前加上一個(gè)new關(guān)鍵字。但如果沒有覆蓋父接口中的成員,使用new 關(guān)鍵字會(huì)導(dǎo)致編譯器發(fā)出警告。
6、方法的名稱必須與同一接口中定義的所有屬性和事件的名稱不同。此外,方法的簽名必須與同一接口中定義的所有其他方法的簽名不同。
7、屬性或事件的名稱必須與同一接口中定義的所有其他成員的名稱不同。
8、一個(gè)索引器的簽名必須區(qū)別于在同一接口中定義的其他所有索引器的簽名。
9、接口方法聲明中的屬性(attributes), 返回類型(return-type), 標(biāo)識(shí)符(identifier), 和形式參數(shù)列表(formal-parameter-lis)與一個(gè)類的方法聲明中的那些有相同的意義。一個(gè)接口方法聲明不允許指定一個(gè)方法主體,而聲明通常用一個(gè)分號(hào)結(jié)束。
10、接口屬性聲明的訪問符與類屬性聲明的訪問符相對(duì)應(yīng),除了訪問符主體通常必須用分號(hào)。因此,無論屬性是讀寫、只讀或只寫,訪問符都完全確定。
11、接口索引聲明中的屬性(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#的接口基礎(chǔ)教程之一 第一節(jié) 接口慨述 接口(interface)用來定義一種程序的協(xié)定。實(shí)現(xiàn)接口的類或者結(jié)構(gòu)要與接口的定義嚴(yán)格一致。有了這個(gè)協(xié)定,就可以拋開編程語言的限制(理論上)。接口可以從多個(gè)基接
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發(fā)送Email實(shí)例(可帶附件)
- js實(shí)現(xiàn)廣告漂浮效果的小例子
- asp.net Repeater 數(shù)據(jù)綁定的具體實(shí)現(xiàn)
- Asp.Net 無刷新文件上傳并顯示進(jìn)度條的實(shí)現(xiàn)方法及思路
- Asp.net獲取客戶端IP常見代碼存在的偽造IP問題探討
- VS2010 水晶報(bào)表的使用方法
- ASP.NET中操作SQL數(shù)據(jù)庫(連接字符串的配置及獲取)
- asp.net頁面?zhèn)髦禍y(cè)試實(shí)例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲(chǔ)過程實(shí)現(xiàn)分頁示例代碼
.Net教程Rss訂閱編程教程搜索
.Net教程推薦
- 面向服務(wù)及其在互聯(lián)系統(tǒng)策略中的角
- 點(diǎn)擊按鈕提交后如何使按鈕變灰不可用
- asp.net 圖片超過指定大小后等比例壓縮圖片的方法
- 揭秘.net基礎(chǔ)知識(shí)錯(cuò)誤注意二十二點(diǎn)知識(shí)
- 從Internet上抓取指定URL的源碼的方案(C#)
- 淺析asp.net中數(shù)據(jù)校驗(yàn)部分的封裝與應(yīng)用
- Asp.net ajax實(shí)現(xiàn)任務(wù)提示頁面
- .NET教程之--.NET動(dòng)態(tài)創(chuàng)建類的實(shí)例解析
- 使用ASP.NET AJAX框架擴(kuò)展HTML Map控件
- 添加GridView/DataGrid單擊一行服務(wù)器事件
- 相關(guān)鏈接:
- 教程說明:
.Net教程-基于C#的接口基礎(chǔ)教程之三
。