Chapter 6: Debugging with Visual Studio

147

VB: Customer.vb

Class Customer

Property Discount As Decimal

Property Order As Order

Function GetOrderDiscount() As Decimal

Return Order.Total * Discount

End Function

End Class

VB: Order.vb

Class Order

Private orderItems As New List(Of Decimal)

Public ReadOnly Property Total() As Decimal

Get

Dim amount As Decimal = 0

For Each item In orderItems amount = amount + item

Next

Return amount

End Get

End Property

Sub AddItem(ByVal item As Decimal) orderItems.Add(item)

End Sub

End Class

A quick look at the code in Listing 6-1 tells you that this program is more sophisticated than the examples you’ve encountered in previous chapters. To understand what is happening, start at the Main method, the entry point of the application. There are two objects instantiated in Main, namely Customer and Order.

After instantiating Customer, you can see that the Discount property on cust is being set to .1 (10%). This means that each instance of Customer can have a unique discount amount, which could be useful if you wanted to reward good shopping habits.

Next, you can see the instantiation of Order and subsequent calls to AddItem on the object reference ord. This code only adds the order amount, but in a real scenario it would likely be a class with more fields to carry the specific details of the order item. The Customer class has an Order property, which the code then passes our Order instance, ord, to. Now, you have a Customer with a discount amount and it has a reference to our specific Order, which in turn has items (represented here by the items’ monetary amount only for brevity).

Page 170
Image 170
Microsoft 9GD00001 manual 147, VB Customer.vb