Generics provide a way for developers to define subroutines, functions, fields, properties as well as classes, structures, interfaces and even delegates in such a way that the parameters are not of any particular type. In a sense the constructs are defined in a generic approach. The .NET Framework contains the following namespaces:System.Collections, System.Collections.Generic. The latter mimics very much the features of the former. System.Collections namespace (nongeneric) ICollection (size, enumeration, thread safety) ...