基于C#的接口基礎教程之四(3)_.Net教程
推薦:基于C#的接口基礎教程之三 第三節 定義接口成員 接口可以包含一個和多個成員,這些成員可以是方法、屬性、索引指示器和事件,但不能是常量、域、操作符、構造函數或析構函數,而且不能包含任何靜態成員。接口定
因為通過外部指派接口成員實現了每個成員,所以用這種方法實現的成員稱為外部接口成員。外部接口成員可以只是通過接口來調用。例如,Paint方法中EditBox的實現可以只是通過創建Icontrol接口來調用。
class Test {
static void Main( ) {
EditBox editbox = new EditBox( );
editbox.Paint( ); //錯誤: EditBox 沒有Paint 事件
IControl control = editbox;
control.Paint( ); // 調用 EditBox的Paint事件
}
}
上例中,類EditBox 從Control 類繼承并同時實現了IControl and IDataBound 接口。EditBox 中的Paint 方法來自IControl 接口,Bind 方法來自IDataBound 接口,二者在EditBox 類中都作為公有成員實現。當然,在C# 中我們也可以選擇不作為公有成員實現接口。
如果每個成員都明顯地指出了被實現的接口,通過這種途徑被實現的接口我們稱之為顯式接口成員(explicit interface member)。 用這種方式我們改寫上面的例子:
public class EditBox: IControl, IDataBound {
void IControl.Paint( ) {…}
void IDataBound.Bind(Binder b) {…}
}
顯式接口成員只能通過接口調用。例如:
class CTest {
static void Main( ) {
EditBox editbox = new EditBox( ) ;
editbox.Paint( ) ; //錯誤:不同的方法
IControl control = editbox;
control.Paint( ) ; //調用 EditBox的Paint方法
}
}
上述代碼中對editbox.Paint( )的調用是錯誤的,因為editbox 本身并沒有提供這一方法。control.Paint( )是正確的調用方式。
注釋:接口本身不提供所定義的成員的實現,它僅僅說明這些成員,這些成員必須依靠實現接口的類或其它接口的支持。
知道了怎樣訪問接口,我們還要知道怎樣實現接口,要實現C#的接口,請看下一節-實現接口
分享:基于C#的接口基礎教程之二 第二節 定義接口 從技術上講,接口是一組包含了函數型方法的數據結構。通過這組數據結構,客戶代碼可以調用組件對象的功能。 定義接口的一般形式為: [attributes] [m
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發送Email實例(可帶附件)
- js實現廣告漂浮效果的小例子
- asp.net Repeater 數據綁定的具體實現
- Asp.Net 無刷新文件上傳并顯示進度條的實現方法及思路
- Asp.net獲取客戶端IP常見代碼存在的偽造IP問題探討
- VS2010 水晶報表的使用方法
- ASP.NET中操作SQL數據庫(連接字符串的配置及獲取)
- asp.net頁面傳值測試實例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲過程實現分頁示例代碼
- 相關鏈接:
- 教程說明:
.Net教程-基于C#的接口基礎教程之四(3)。