'
' Interface example by Josh Santomieri
' Santomieri Systems - 08/25/2006
'
Imports Microsoft.VisualBasic
Imports System.Collections
'''
''' Interface for custom lists.
'''
Public Interface IMyList
'''
''' Gets or sets the object at the index i.
'''
Default Property Item(ByVal i As Integer) As Object
'''
''' Gets the count of items in the list.
'''
ReadOnly Property Count() As Integer
'''
''' Allows you to add an object to the list.
'''
''' The object to add to the list.
Sub Add(ByVal item As Object)
End Interface
'''
''' Represents a list.
'''
Public Class MyList
Implements IMyList
Private _list As ArrayList
'''
''' Creates a new MyList.
'''
Public Sub New()
Me._list = New ArrayList()
End Sub
'''
''' Adds an item to the list.
'''
''' The item to add to the list.
Public Sub Add(ByVal item As Object) Implements IMyList.Add
Me._list.Add(item)
End Sub
'''
''' Gets the count of items in the list. (interface declaration)
'''
Public ReadOnly Property Count() As Integer Implements IMyList.Count
Get
Return Me._list.Count
End Get
End Property
'''
''' Gets or sets the object at index i. (interface declaration)
'''
Default Public Property Item(ByVal i As Integer) As Object Implements IMyList.Item
Get
Return Me._list(i)
End Get
Set(ByVal value As Object)
Me._list(i) = value
End Set
End Property
End Class
'''
''' Represents a list #2.
'''
Public Class MyList2
Implements IMyList
Private _list As ArrayList
'''
''' Creates a new MyList.
'''
Public Sub New()
Me._list = New ArrayList()
End Sub
'''
''' Adds an item to the list.
'''
''' The item to add to the list.
Public Sub Add(ByVal item As Object) Implements IMyList.Add
Me._list.Add(item)
End Sub
'''
''' Gets the count of items in the list. (interface declaration)
'''
Public ReadOnly Property Count() As Integer Implements IMyList.Count
Get
Return Me._list.Count
End Get
End Property
'''
''' Gets or sets the object at index i. (interface declaration)
'''
Default Public Property Item(ByVal i As Integer) As Object Implements IMyList.Item
Get
Return Me._list(i)
End Get
Set(ByVal value As Object)
Me._list(i) = value
End Set
End Property
End Class
'''
''' Gets information about a list...
'''
Public Class ListInfo
'''
''' Gets the count of items in a list that uses the IMyList interface
'''
''' A list of type IMyList.
''' The number of items in the list.
Public Shared Function ItemsInList(ByVal list As IMyList) As Integer
If list Is Nothing Then
Throw New ArgumentNullException("list")
End If
Return list.Count
End Function
End Class
'''
''' Represents the main entry point for the program.
'''
Public Class MyProgram
Public Shared Sub Main(ByVal args As String())
Dim list As New MyList()
Dim list2 As New MyList2()
list.Add("test")
list.Add("test1")
list2.Add("testing")
list2.Add("testing1")
list2.Add("testing2")
' Using one function, write out the number of items in the lists...
' Output should be:
' Items In MyList: 2
' Items In MyList2: 1
Console.WriteLine("Items In MyList: " & ListInfo.ItemsInList(list))
Console.WriteLine("Items In MyList2: " & ListInfo.ItemsInList(list2))
End Sub
End Class