C#之接口(Interface)
2011-09-22 10:22
337 查看
新手肯定特别困惑C#中接口的含义,在此我用通俗的语言给大家描述一下。
首先,接口跟class是同一个层次的,它跟class的区别是,接口只有成员的声明,而没有实现,也就是说只有方法、属性的名称,没有具体代码,比如以下接口:
注意看,接口IEnumerable中有一个GetEnumerator方法,但是没有方法的具体代码,这就是接口的特点。
又有人要问了,接口里没有代码,他怎么工作呢?其实接口并没有直接的功能,它只是一种约定的协议,如果某个类实现了某接口,那这个类就具备了某种功能。比如
(本文代码仅供参考,实际运行还需需另外添加内容)
首先,接口跟class是同一个层次的,它跟class的区别是,接口只有成员的声明,而没有实现,也就是说只有方法、属性的名称,没有具体代码,比如以下接口:
public interface IEnumerable { IEnumerator GetEnumerator(); }
注意看,接口IEnumerable中有一个GetEnumerator方法,但是没有方法的具体代码,这就是接口的特点。
又有人要问了,接口里没有代码,他怎么工作呢?其实接口并没有直接的功能,它只是一种约定的协议,如果某个类实现了某接口,那这个类就具备了某种功能。比如
public class GoodsList : IEnumerable { private Goods[] goods; internal GoodsList(Goods[] goodsarray) { goods=new Goods[goodsarray.Length]; for (int i = 0; i < goodsarray.Length; i++) { goods[i] = goodsarray[i]; } } /// <summary> /// 实现GetEnumerator方法 /// </summary> /// <returns></returns> public IEnumerator GetEnumerator() { return new GoodsEnum(goods); } }IEnumerable接口的意思是说 “可以被迭代”,如果GoodsList类实现了IEnumerable接口,并实现了该接口内部的方法,则GoodsList可用于foreach迭代。
(本文代码仅供参考,实际运行还需需另外添加内容)
相关文章推荐
- the Differences between abstract class & interface in C#接口和抽象类的区别
- # c#基础系列之C# 接口(interface)
- 比较C#中抽象类(abstract class)和接口(interface)的异同
- C#梳理【类的继承和Interface接口】
- C# 接口(Interface)初探
- C#中接口(interface)的理解
- C# 接口(Interface)
- C# interface 接口理解
- C#试题(四)Interface 接口特性
- C#关于类抽象类和接口之间的关系(Abstract)(Interface)
- C# 接口interface的学习
- C#中接口(interface)的理解
- C# 接口使用 (interface)
- C#之interface接口
- C# 浅谈 接口(Interface)的作用
- C#中的显式接口成员实现(explicit interface member implementation)
- C# 浅谈 接口(Interface)的作用
- c#中的接口(interface)到底应用在哪些地方?
- C# ----- 接口(Interface)
- C#调用Delphi接口(ITest = interface)