基于C#的接口

本文介绍了接口的基本概念,包括如何定义接口、实现接口的类或结构需要遵循的规则,以及接口支持多重继承的特点。同时,文章还通过具体示例展示了接口在实际编程中的应用。

接口(interface)用来定义一种程序的协定。实现接口的类或者结构要与接口的定义严格一致。有了这个协定,就可以抛开编程语言的限制(理论上)。接口可以从多个基接口继承,而类或结构可以实现多个接口。接口可以包含方法、属性、事件和索引器。接口本身不提供它所定义的成员的实现。接口只指定实现该接口的类或接口必须提供的成员。

接口好比一种模版,这种模版定义了对象必须实现的方法,其目的就是让这些方法可以作为接口实例被引用。接口不能被实例化。类可以实现多个接口并且通过这些实现的接口被索引。接口变量只能索引实现该接口的类的实例。例子:

None.gifinterface IMyExample
ExpandedBlockStart.gifContractedBlock.gif
dot.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif   
string this[int index] dot.gifgetset; } 
InBlock.gif   
event EventHandler Even; 
InBlock.gif   
void Find(int value); 
ExpandedSubBlockStart.gifContractedSubBlock.gif    
string Point dot.gifgetset; } 
ExpandedBlockEnd.gif}
 
None.gif
public delegate void EventHandler(object sender, Event e);

上面例子中的接口包含一个索引this、一个事件Even、一个方法Find和一个属性Point。

接口可以支持多重继承。就像在下例中,接口”IComboBox”同时从”ITextBox”和”IListBox”继承。

None.gifinterface IControl
ExpandedBlockStart.gifContractedBlock.gif
dot.gif
InBlock.gif    
void Paint( ); 
ExpandedBlockEnd.gif}
 
None.gif
interface ITextBox:IControl
ExpandedBlockStart.gifContractedBlock.gif
dot.gif
InBlock.gif    
void SetText(string text);
ExpandedBlockEnd.gif}
 
None.gif
interface IListBox:IControl
ExpandedBlockStart.gifContractedBlock.gif
dot.gif
InBlock.gif    
void SetItems(string[] items);
ExpandedBlockEnd.gif}
 
ExpandedBlockStart.gifContractedBlock.gif
interface IComboBox:ITextBox,IListBoxdot.gif{ }

类和结构可以多重实例化接口。就像在下例中,类”EditBox”继承了类”Control”,同时从”IDataBound”和”IControl”继承。

None.gifinterface IDataBound
ExpandedBlockStart.gifContractedBlock.gif
dot.gif
InBlock.gif   
void Bind(Binder b); 
ExpandedBlockEnd.gif}
 
None.gif
public class EditBox: Control, IControl, IDataBound
ExpandedBlockStart.gifContractedBlock.gif
dot.gif
InBlock.gif   
public void Paint( ); 
ExpandedSubBlockStart.gifContractedSubBlock.gif   
public void Bind(Binder b) dot.gif{ } 
ExpandedBlockEnd.gif}

在上面的代码中,”Paint”方法从”IControl”接口而来;”Bind”方法从”IDataBound”接口而来,都以”public”的身份在”EditBox”类中实现。

转载于:https://www.cnblogs.com/hhdn/archive/2007/03/05/664611.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值