自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

深入概括VB.NET實(shí)現(xiàn)IEnumerator接口

開(kāi)發(fā) 后端
這里介紹VB.NET實(shí)現(xiàn)IEnumerator接口,包括介紹MoveNext用于在迭代過(guò)程中將迭代指針指向下一個(gè)對(duì)象,初始是迭代指針指向集合的開(kāi)始,一旦越過(guò)集合的結(jié)尾,在調(diào)用 Reset 之前,對(duì) MoveNext 的后續(xù)調(diào)用返回 false。

VB.NET經(jīng)過(guò)長(zhǎng)時(shí)間的發(fā)展,很多用戶都很了解VB.NET實(shí)現(xiàn)IEnumerator接口了,這里我發(fā)表一下個(gè)人理解,和大家討論討論。在面向?qū)ο蟮脑O(shè)計(jì)中,經(jīng)常會(huì)用到有類似父子關(guān)系的這個(gè)對(duì)象,比如在我現(xiàn)在的一個(gè)項(xiàng)目中,有訂單對(duì)象,在一個(gè)訂單下又包含多個(gè)產(chǎn)品,這時(shí)我就想用 Iterator模式來(lái)封裝訂單下的產(chǎn)品,在dot Net中的IEnumerator接口就是用來(lái)實(shí)現(xiàn)迭代的,來(lái)支持dot Net中的for each的操作。

VB.NET實(shí)現(xiàn)IEnumerator接口,需在實(shí)現(xiàn)以下幾個(gè)函數(shù)來(lái)支持IEnumerator接口的操作

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

Current用于在迭代過(guò)程中得到當(dāng)前的對(duì)象

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

MoveNext用于在迭代過(guò)程中將迭代指針指向下一個(gè)對(duì)象,初始是迭代指針指向集合的開(kāi)始(在***個(gè)節(jié)點(diǎn)之前的位置),一旦越過(guò)集合的結(jié)尾,在調(diào)用 Reset 之前,對(duì) MoveNext 的后續(xù)調(diào)用返回 false。

  1. Overridable Sub Reset() 

將枚舉數(shù)設(shè)置為其初始位置,該位置位于集合中***個(gè)元素之前。

只要集合保持不變,枚舉數(shù)就將保持有效。如果對(duì)集合進(jìn)行了更改(例如添加、修改或刪除元素),則該枚舉數(shù)將失效且不可恢復(fù),并且下一次對(duì) MoveNext 或 Reset 的調(diào)用將引發(fā)InvalidOperationException。

下需是一個(gè)具體的VB.NET實(shí)現(xiàn)IEnumerator接口的對(duì)像

  1. Imports System.Collections  
  2.  
  3. '在此實(shí)際實(shí)現(xiàn)的是System.Collections.IEnumerable接口,
    IteratorProduct 用此接口來(lái)向使用者提供對(duì)IEnumerator接口的操作。  
  4.  
  5. Public Class IteratorProduct : Implements System.Collections.IEnumerable  
  6. Private Products As Collection '用Collection在存訂單中的所有產(chǎn)品  
  7. Private item As Integer = -1  
  8.  
  9. Public Sub New()  
  10. Products = New Collection  
  11. Products.Add("xh") '這只是為了測(cè)試方便,將加入產(chǎn)品的內(nèi)容直接寫(xiě)在這了  
  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. '返回迭代對(duì)像給使用者  
  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串口通訊如何發(fā)送接收數(shù)據(jù)
  2. 是否了解VB.NET Derived Class
  3. 迅速掌握VB.NET Shared變量技能
  4. 事例講解VB.NET Constructor函式
  5. 剖析VB.NET寫(xiě)Object Oriented編程
責(zé)任編輯:佚名 來(lái)源: CSDN
相關(guān)推薦

2009-11-02 15:45:03

VB.NET IEnu

2009-10-21 10:05:30

VB.NET運(yùn)行環(huán)境

2010-01-14 09:55:06

VB.NET IEnu

2009-10-14 10:19:57

VB.NET Doma

2009-10-15 17:50:48

VB.NET Spli

2009-10-26 15:57:07

VB.NET使用Ora

2009-10-13 14:50:59

VB.NET Envi

2009-10-14 14:04:29

VB.NET創(chuàng)建Web

2009-10-14 16:46:25

VB.NET OnSt

2009-11-03 10:51:33

VB.NET共享

2009-10-23 14:06:07

VB.NET類對(duì)象

2009-10-27 11:32:42

VB.NET Disp

2009-10-14 13:15:09

VB.NET數(shù)據(jù)綁定

2009-11-03 10:00:20

VB.NET New方

2009-10-14 15:34:29

VB.NET窗體編程模

2009-10-28 10:51:32

VB.NET默認(rèn)屬性

2009-10-27 10:30:18

VB.NET實(shí)現(xiàn)動(dòng)態(tài)菜

2009-11-02 17:49:05

VB.NET抽象類

2009-11-02 09:21:04

VB.NET文件系統(tǒng)

2009-10-28 14:44:43

VB.NET Name
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)