设为首页 加入收藏

TOP

介绍一下IEnumerator 和 IEnumberator
2014-11-24 01:37:54 来源: 作者: 【 】 浏览:14
Tags:介绍 IEnumerator IEnumberator

IEnumerable 只是表明某个对象能够被枚举,真正的工作是由IEnumerator的Current、 MoveNext、Reset完成的,为什么要有2个不同的接口来作枚举呢?主要是考虑到被枚举的对象会有多个独立的客户端调用。


在现实应用中,对于集合以及枚举这些集合的需求非常普遍, 因此在.NET中集合所依赖的接口被设计为公共的。想要实现对象的枚举就必须继承IEnumerable接口。


public interface IEnumerable


{


public IEnumerator GetEnumerator();


}


它只有一个成员:GetEnumerator方法。该方法返回一个世纪的枚举器(enumerator)对象。


要定义一个枚举器就要必须实现IEnumrator接口:


public interface IEnumerator


{


public Boolean MoveNext();


public Object Current { get; }


public void Reset();


}


也就是说如果我们希望一个类型支持枚举特性,那么我们就必须还要额外定义一个辅助类型来实现IEnumerator的所有方法。这个辅助类型通常被定义为一个Nested class声明在主类内部。这样在实现的时候我们发现,在app调用GetEnumerator()方法时,我们需要构造一个辅助类型的实例作为返回值。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇IList 接口与List的区别是什么? 下一篇object obj和object obj = null有..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: