熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

ASP.NET入門教程 9.4.1 創建類[7]

2022-06-13   來源: .NET編程 

    向購物車中插入記錄項是使用Insert方法實現的


Public Sub Insert(ByVal ProductID As Integer ByVal Price As Double ByVal Quantity As Integer ByVal ProductName As String ByVal ProductImageUrl As String)

 

 

        Dim NewItem As New CartItem()

 

        NewItemProductID = ProductID

        NewItemQuantity = Quantity

        NewItemPrice = Price

        NewItemProductName = ProductName

        NewItemProductImageUrl = ProductImageUrl

 

        _itemsAdd(NewItem)

 

End Sub

    這段程序接受了個參數每個記錄項((ID價格等)使用了一個參數這個程序段創建了一個新的Cartltem其屬性被設置為這些參數的值一旦設置了所有的參數該記錄則被添加到_items集合中並更新時間

    Insert方法存在的一個問題是對於同一商品可以多次調用它這樣會導致購物車中出現多個相同的商品對於己經在購物車中出現的商品如果只是簡單地增加其數量這樣看起來會更加明智為了實現這種功能需要搜索該集合查看具有相同ProductID的記錄項因此可以創建一個函數來實現


Private Function ItemIndexOfID(ByVal ProductID As Integer) As Integer

    Dim index As Integer

    For Each item As CartItem In _items

        If itemProductID = ProductID Then

            Return index

        End If

        index +=

    Next

    Return

End Function

    該函數使用ProductID作為參數並返回一個Integer值該函數循環遍歷_items集合如果某個記錄項的ProductID與提供的ProductlD匹配則使用Return語句返回其索引號如果循環結束後還沒有發現匹配則返回注意該函數被標記為Private;這是因為在該類的外部不能使用它

    現在Insert方法可以修改如下


Public Sub Insert(ByVal ProductID As Integer ByVal Price As Double ByVal Quantity As Integer ByVal ProductName As String ByVal ProductImageUrl As String)

    Dim ItemIndex As Integer = ItemIndexOfID(ProductID)

    If ItemIndex = Then

        Dim NewItem As New CartItem()

        NewItemProductID = ProductID

        NewItemQuantity = Quantity

        NewItemPrice = Price

        NewItemProductName = ProductName

        NewItemProductImageUrl = ProductImageUrl

        _itemsAdd(NewItem)

    Else

        _items(ItemIndex)Quantity +=

    End If

    _lastUpdate = DateTimeNow()

End Sub

    該方法使用了相同的參數但首先是調用私有變量ItemIndexOfID來獲取當前商品的索引號如果索引號為那麼集合中沒有包含該記錄項則添加進來如果已經存在那麼將增加其Quantity

[]  []  []  []  []  []  []  []  


From:http://tw.wingwit.com/Article/program/net/201311/14620.html
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.