项目中遇到的新知识

    欢迎来到 unity学习 unity培训 unity企业培训 教育专区,这里有很多 U3D资源 U3D培训视频 U3D教程 U3D常见问题 U3D项目源码 ,我们致力于打造业内 unity3d 培训、学习第一品牌。

迭代器

      迭代器是可以返回相同类型的值的有序序列的一段代码。


      迭代器可用作方法、运算符或 get 访问器的代码体。


      迭代器代码使用 yield return 语句依次返回每个元素。yield break 将终止迭代。有关更多信息,请参见 yield。


      可以在类中实现多个迭代器。每个迭代器都必须像任何类成员一样有唯一的名称,并且可以在 foreach 语句中被客户端代码调用,如下所示:       foreach(int x in SampleClass.Iterator2){}

      迭代器的返回类型必须为 IEnumerable、IEnumerator、IEnumerable<T> 或 IEnumerator<T>。


      迭代器是使用在foreach中的集合。在C#2.0中使用迭代器创建一个用于foreach的集合,实现上比较简单:继承于IEumnerable,并实现   GetEnumerator()。


迭代器的机制:

 

  实际上迭代器只是在C#2.0中通过编译器一层额外处理的,用来简化创建可用于foreach的枚举集合的工作,从性能上没有什么变化。对于其生成的中间语言没有太多的变化。


适用性

 

1.访问一个聚合对象的内容而无需暴露它的内部表示。

 

2.支持对聚合对象的多种遍历。

 

3.为遍历不同的聚合结构提供一个统一的接口(即, 支持多态迭代)。

 

总结

 

Iterator模式就是分离了集合对象的遍历行为,抽象出一个迭代器类来负责,这样既可以做到不暴露集合的内部结构,又可让外部代码透明的访问集合内部的数据

项目中应用到的地方:

  1. ArrayList list2 = new EquipmentOperation().Show();
  2.                             IEnumerator it = list2.GetEnumerator();
  3.                             while (it.MoveNext())
  4.                             {

  5.                                 Users u2 = (Users)it.Current;
  6.                                 it.MoveNext();
  7.                                 Equipment e2 = (Equipment)it.Current;
  8.                                 it.MoveNext();
  9.                                 UsersGoldCoin ugc = (UsersGoldCoin)it.Current;
  10.                                 it.MoveNext();
  11.                                 UsersEquipment ue = (UsersEquipment)it.Current;

  12.                                 Console.WriteLine(u2.Name + "   " + e2.Name + "   " + ugc.Number + "   " + ue.Number);
  13.                             }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值