Imports System
Imports System.Collections
Public Class MainClass
Shared Sub Main(ByVal args As String())
Dim employees As New Collection
employees.Add(New Employee("A"))
employees.Add(New Manager("B"))
employees.Add(New Manager("C"))
employees.Add(New Employee("D"))
ShowEmployees(employees)
' Works.
Dim emp As Employee
For i As Integer = employees.Count To 1 Step -1
emp = CType(employees(i), Employee)
If emp.IsManager Then employees.Remove(i)
Next i
ShowEmployees(employees)
End Sub
Shared Private Sub ShowEmployees(ByVal employees As Collection)
For Each emp As Employee In employees
Console.WriteLine( emp.Name & vbCrLf )
Next emp
End Sub
End Class
Public Class Employee
Public Name As String
Public Sub New(ByVal new_name As String)
Name = new_name
End Sub
Public Overridable Function IsManager() As Boolean
Return False
End Function
End Class
Public Class Customer
Public Name As String
Public Sub New(ByVal new_name As String)
Name = new_name
End Sub
End Class
Public Class Manager
Inherits Employee
Public Sub New(ByVal new_name As String)
MyBase.new(new_name)
End Sub
Public Overrides Function IsManager() As Boolean
Return True
End Function
End Class