国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

VB.NET中實現IEnumerator接口

2024-07-10 13:00:31
字體:
來源:轉載
供稿:網友


vb.net中實現ienumerator接口
在面向對象的設計中,經常會用到有類似父子關系的這個對象,比如在我現在的一個項目中,有訂單對象,在一個訂單下又包含多個產品,這時我就想用iterator模式來封裝訂單下的產品,在dot net中的ienumerator接口就是用來實現迭代的,來支持dot net中的for each的操作。

要實現ienumerator接口,需在實現以下幾個函數來支持ienumerator接口的操作

overridable readonly property current() as object

current用于在迭代過程中得到當前的對象


 public overridable function movenext() as boolean

movenext用于在迭代過程中將迭代指針指向下一個對象,初始是迭代指針指向集合的開始(在第一個節點之前的位置),一旦越過集合的結尾,在調用 reset 之前,對 movenext 的后續調用返回 false。

 overridable sub reset()
 將枚舉數設置為其初始位置,該位置位于集合中第一個元素之前。

只要集合保持不變,枚舉數就將保持有效。如果對集合進行了更改(例如添加、修改或刪除元素),則該枚舉數將失效且不可恢復,并且下一次對 movenext 或 reset 的調用將引發 invalidoperationexception。

下需是一個具體的實現ienumerator接口的對像

'------------------------實現ienumerator接口的類----------------------------------

imports system.collections

'在此實際實現的是system.collections.ienumerable接口,iteratorproduct 用此接口來向使用者提供對ienumerator接口的操作。

public class iteratorproduct : implements system.collections.ienumerable
    private products as collection         '用collection在存訂單中的所有產品
    private item as integer = -1

    public sub new()
        products = new collection
        products.add("xh")                   '這只是為了測試方便,將加入產品的內容直接寫在這了
        products.add("lj")
        products.add("qd")
    end sub

    overridable readonly property current() as object
        get
            return products(item)
        end get
    end property

    public overridable function movenext() as boolean
        item += 1
    end function

    overridable sub reset()
        item = -1
    end sub

'    返回迭代對像給使用者

overridable function getenumerator() as ienumerator implements ienumerable.getenumerator
        return me.products.getenumerator
    end function


end class



'------------------------使用類----------------------------------

private sub page_load(byval sender as system.object, byval e as system.eventargs) handles mybase.load
        dim products as iteratorproduct
        products = new iteratorproduct
        dim productname as string
        for each productname in products
            response.write(productname)
            response.write("<br>")
        next
    end sub

輸出為:

xh
lj
qd
說明實現成功
上一篇:UBB(vb.net完整版)

下一篇:VB.net usage

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 马尔康县| 紫金县| 南召县| 娱乐| 称多县| 托克托县| 新蔡县| 德庆县| 大连市| 祁阳县| 固安县| 泗水县| 布尔津县| 彩票| 靖宇县| 济南市| 泉州市| 呼玛县| 阿拉善左旗| 鄯善县| 石首市| 上林县| 永州市| 顺义区| 临夏县| 军事| 宝应县| 黄大仙区| 东方市| 霍林郭勒市| 社旗县| 大渡口区| 永兴县| 梅河口市| 宜丰县| 天长市| 天镇县| 四会市| 贵南县| 永和县| 蕉岭县|