asp.net

位置:IT落伍者 >> asp.net >> 浏览文章

ASP.NET入门教程 9.4.1 创建类[7]


发布日期:2022年01月03日
 
ASP.NET入门教程 9.4.1 创建类[7]

向购物车中插入记录项是使用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

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

               

上一篇:ASP.NET入门教程 9.4.1 创建类[8]

下一篇:ASP.NET入门教程 9.4.1 创建类[2]