深入概括VB.NET实现IEnumerator接口

开发 后端
这里介绍VB.NET实现IEnumerator接口,包括介绍MoveNext用于在迭代过程中将迭代指针指向下一个对象,初始是迭代指针指向集合的开始,一旦越过集合的结尾,在调用 Reset 之前,对 MoveNext 的后续调用返回 false。

VB.NET经过长时间的发展,很多用户都很了解VB.NET实现IEnumerator接口了,这里我发表一下个人理解,和大家讨论讨论。在面向对象的设计中,经常会用到有类似父子关系的这个对象,比如在我现在的一个项目中,有订单对象,在一个订单下又包含多个产品,这时我就想用 Iterator模式来封装订单下的产品,在dot Net中的IEnumerator接口就是用来实现迭代的,来支持dot Net中的for each的操作。

VB.NET实现IEnumerator接口,需在实现以下几个函数来支持IEnumerator接口的操作

  1. Overridable ReadOnly Property Current()   
  2. As Object 

Current用于在迭代过程中得到当前的对象

  1. Public Overridable Function MoveNext()   
  2. As Boolean 

MoveNext用于在迭代过程中将迭代指针指向下一个对象,初始是迭代指针指向集合的开始(在***个节点之前的位置),一旦越过集合的结尾,在调用 Reset 之前,对 MoveNext 的后续调用返回 false。

  1. Overridable Sub Reset() 

将枚举数设置为其初始位置,该位置位于集合中***个元素之前。

只要集合保持不变,枚举数就将保持有效。如果对集合进行了更改(例如添加、修改或删除元素),则该枚举数将失效且不可恢复,并且下一次对 MoveNext 或 Reset 的调用将引发InvalidOperationException。

下需是一个具体的VB.NET实现IEnumerator接口的对像

  1. Imports System.Collections  
  2.  
  3. '在此实际实现的是System.Collections.IEnumerable接口,
    IteratorProduct 用此接口来向使用者提供对IEnumerator接口的操作。  
  4.  
  5. Public Class IteratorProduct : Implements System.Collections.IEnumerable  
  6. Private Products As Collection '用Collection在存订单中的所有产品  
  7. Private item As Integer = -1  
  8.  
  9. Public Sub New()  
  10. Products = New Collection  
  11. Products.Add("xh") '这只是为了测试方便,将加入产品的内容直接写在这了  
  12. Products.Add("lj")  
  13. Products.Add("qd")  
  14. End Sub  
  15.  
  16. Overridable ReadOnly Property Current() As Object  
  17. Get  
  18. Return Products(item)  
  19. End Get  
  20. End Property  
  21.  
  22. Public Overridable Function MoveNext() As Boolean  
  23. item += 1  
  24. End Function  
  25.  
  26. Overridable Sub Reset()  
  27. item = -1  
  28. End Sub  
  29.  
  30. '返回迭代对像给使用者  
  31.  
  32. Overridable Function GetEnumerator() 
    As IEnumerator Implements IEnumerable.GetEnumerator  
  33. Return Me.Products.GetEnumerator  
  34. End Function  
  35.  
  36. End Class 

【编辑推荐】

  1. 三步了解VB.NET串口通讯如何发送接收数据
  2. 是否了解VB.NET Derived Class
  3. 迅速掌握VB.NET Shared变量技能
  4. 事例讲解VB.NET Constructor函式
  5. 剖析VB.NET写Object Oriented编程
责任编辑:佚名 来源: CSDN
相关推荐

2009-11-02 15:45:03

VB.NET IEnu

2010-01-14 09:55:06

VB.NET IEnu

2009-10-21 10:05:30

VB.NET运行环境

2009-10-15 17:50:48

VB.NET Spli

2009-10-14 10:19:57

VB.NET Doma

2009-10-14 14:04:29

VB.NET创建Web

2009-10-13 14:50:59

VB.NET Envi

2009-10-26 15:57:07

VB.NET使用Ora

2009-10-23 14:06:07

VB.NET类对象

2009-10-14 16:46:25

VB.NET OnSt

2009-11-03 10:51:33

VB.NET共享

2009-10-27 11:32:42

VB.NET Disp

2009-11-03 10:00:20

VB.NET New方

2009-10-14 13:15:09

VB.NET数据绑定

2009-10-14 15:34:29

VB.NET窗体编程模

2009-10-28 10:51:32

VB.NET默认属性

2009-10-27 10:30:18

VB.NET实现动态菜

2009-11-02 17:49:05

VB.NET抽象类

2009-10-28 14:44:43

VB.NET Name

2009-11-02 09:21:04

VB.NET文件系统
点赞
收藏

51CTO技术栈公众号