Imports System
Imports System.Collections.Generic
Class ArrayTypeTest
Public Shared Sub Main()
' Demonstrate classes:
Console.WriteLine("Defned Classes:")
Dim room1 As Room = New Room
Dim kitchen1 As Kitchen = New Kitchen
Dim bedroom1 As Bedroom = New Bedroom
Dim guestroom1 As Guestroom = New Guestroom
Dim masterbedroom1 As MasterBedroom = New MasterBedroom
Dim room1Type As Type = room1.GetType
Dim kitchen1Type As Type = kitchen1.GetType
Dim bedroom1Type As Type = bedroom1.GetType
Dim guestroom1Type As Type = guestroom1.GetType
Dim masterbedroom1Type As Type = masterbedroom1.GetType
Console.WriteLine("room assignable from kitchen: {0}", room1Type.IsAssignableFrom(kitchen1Type))
Console.WriteLine("bedroom assignable from guestroom: {0}", bedroom1Type.IsAssignableFrom(guestroom1Type))
Console.WriteLine("kitchen assignable from masterbedroom: {0}", kitchen1Type.IsAssignableFrom(masterbedroom1Type))
' Demonstrate arrays:
Console.WriteLine()
Console.WriteLine("Integer arrays:")
Dim array10(10) As Integer
Dim array2(2) As Integer
Dim array22(2, 2) As Integer
Dim array24(2, 4) As Integer
Dim array10Type As Type = array10.GetType
Dim array2Type As Type = array2.GetType
Dim array22Type As Type = array22.GetType
Dim array24Type As Type = array24.GetType
Console.WriteLine("int[2] assignable from int[10]: {0}", array2Type.IsAssignableFrom(array10Type))
Console.WriteLine("int[2] assignable from int[2,4]: {0}", array2Type.IsAssignableFrom(array24Type))
Console.WriteLine("int[2,4] assignable from int[2,2]: {0}", array24Type.IsAssignableFrom(array22Type))
' Demonstrate generics:
Console.WriteLine()
Console.WriteLine("Generics:")
' Note that "int?[]" is the same as "Nullable<int>[]"
Dim arrayNull(10) As Nullable(Of Integer)
Dim genIntList As New List(Of Integer)
Dim genTList As New List(Of Type)
Dim arrayNullType As Type = arrayNull.GetType
Dim genIntListType As Type = genIntList.GetType
Dim genTListType As Type = genTList.GetType
Console.WriteLine("int[10] assignable from int?[10]: {0}", array10Type.IsAssignableFrom(arrayNullType))
Console.WriteLine("List<int> assignable from List<Type>: {0}", genIntListType.IsAssignableFrom(genTListType))
Console.WriteLine("List<Type> assignable from List<int>: {0}", genTListType.IsAssignableFrom(genIntListType))
Console.ReadLine()
End Sub
End Class
Class Room
End Class
Class Kitchen
Inherits Room
End Class
Class Bedroom
Inherits Room
End Class
Class Guestroom
Inherits Bedroom
End Class
Class MasterBedroom
Inherits Bedroom
End Class