' Visual Basic 2008 9.0 .NET Examples - Collections - Introduction - Object Oriented Programming : Class Rectangle Private m_Height As Integer Public Property Height() As Integer Get Height = m_Height End Get Set(ByVal value As Integer) m_Height = value End Set End Property Private m_Width As Integer Public Property Width() As Integer Get Width = m_Width End Get Set(ByVal value As Integer) m_Width = value End Set End Property Public Function GetArea() As Integer GetArea = Height * Width End Function End Class Class Rectangles Private m_Items As Rectangle() Default Public ReadOnly Property Item(ByVal index As Integer) As Rectangle Get Item = m_Items(index) End Get End Property Private m_Count As Integer Public ReadOnly Property Count() As Integer Get Count = m_Count End Get End Property Public Sub Add(ByVal rectangle As Rectangle) ReDim Preserve m_Items(Count) m_Items(Count) = rectangle m_Count += 1 End Sub Public Sub RemoveAt(ByVal index As Integer) For itemIndex As Integer = index To Count - 2 m_Items(itemIndex) = m_Items(itemIndex + 1) Next ReDim Preserve m_Items(Count - 2) m_Count -= 1 End Sub Public Function GetTotalArea() As Integer For Each item As Rectangle In m_Items GetTotalArea += item.GetArea() Next End Function End Class Module Exercise1Solution Sub Main() Dim rectangle1 As Rectangle = New Rectangle rectangle1.Height = 1 rectangle1.Width = 2 Console.WriteLine(rectangle1.GetArea()) ' Dim rectangle2 As Rectangle = New Rectangle rectangle2.Height = 3 rectangle2.Width = 4 Console.WriteLine(rectangle2.GetArea()) ' Dim rectangles1 As Rectangles = New Rectangles rectangles1.Add(rectangle1) rectangles1.Add(rectangle2) ' For index As Integer = 0 To rectangles1.Count - 1 Console.Write(rectangles1(index).GetArea() & " ") Next Console.WriteLine() Console.WriteLine(rectangles1.GetTotalArea()) ' rectangles1.RemoveAt(1) ' For index As Integer = 0 To rectangles1.Count - 1 Console.Write(rectangles1(index).GetArea() & " ") Next Console.WriteLine() Console.WriteLine(rectangles1.GetTotalArea()) ' Console.ReadLine() End Sub End Module ' Visit www.studyvb.com for more examples. Copyright 2003-2008 De Wolf.