VB.NETIEnumerator接口操作代码解读

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

创新互联主要从事成都网站设计、网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务青山,十余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:13518219792

要想实现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接口的相关代码示例就为大家介绍到这里。

网站标题:VB.NETIEnumerator接口操作代码解读
网站网址:http://www.csdahua.cn/qtweb/news2/408802.html

网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网