Class VB.Net

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