VB.NET IEnumerator接口操作代码解读

开发 后端
VB.NET IEnumerator接口主要功能就是帮助开发人员实现迭代,并且还能支持其中的for each等操作。下面让我们一起来看看具体的编写方式。

VB.NET从出现到今天已经经过了一段比较长的过渡期,而且这项技术语言正在稳步健康的向前发展,为开发人员不断的提供新的功能。在面向对象的设计中,经常会用到有类似父子关系的这个对象,比如在我现在的一个项目中,有订单对象,在一个订单下又包含多个产品,这时我就想用 Iterator模式来封装订单下的产品,VB.NET IEnumerator接口就是用来实现迭代的,来支持VB.NET中的for each的操作。#t#

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

 

  1. Overridable ReadOnly 
    Property Current() As Object 

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

  1. Public Overridable 
    Function MoveNext() 
    As Boolean 

 

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

  1. Overridable 
    Sub Reset() 

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

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

下面是一个具体的VB.NET IEnumerator接口的对像

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

VB.NET IEnumerator接口的相关代码示例就为大家介绍到这里。

责任编辑:曹凯 来源: 中国IT实验室
相关推荐

2009-11-02 15:45:03

VB.NET IEnu

2009-10-29 16:23:42

VB.NET实现IEn

2010-01-13 09:31:39

VB.NET窗体打印

2010-01-13 15:01:13

VB.NET操作MyS

2010-01-08 14:50:47

VB.NET测试硬盘速

2010-01-19 17:03:25

VB.NET可执行语句

2010-01-08 10:48:05

VB.NET多线程

2010-01-07 17:51:36

VB.NET实现Sin

2010-01-20 14:32:12

VB.NET转换运算符

2009-08-19 16:38:30

VB.NET接口范例

2009-10-27 12:06:01

VB.NET IDis

2010-01-11 11:37:08

VB.NET操作CSV

2010-01-07 10:28:04

VB.NET实现接口

2010-01-11 11:02:27

VB.NET调用存储过

2010-01-15 11:31:02

VB.NET接口实现多

2010-01-18 16:58:29

VB.NET Over

2010-01-11 17:12:12

VB.NET事务处理

2009-10-09 16:54:03

VB.NET窗体

2009-11-02 10:42:04

VB.NET EXCE

2010-01-18 14:47:42

VB.NET获取环境变
点赞
收藏

51CTO技术栈公众号