A quick explanation of Generics is that they are collections, equivalent to ArrayList, HashTable, SortedList, etc. that can be strongly typed simply by you designating what type they accept at design time. That way, instead of a Collections.ArrayList being able to contain an Integer, a String and any other Object you care to Add to it, a Generics.List that you declare as being Of Integer will throw an exception if you try to Add anything but an integer to it. In the case of a SortedList or HashTable, the Generics version requires you to declare the type of both the keys and the values. You can declare either as being Of Object if you only want one to be strongly typed.