Generics are a way to declare types, interfaces, delegates, and methods in a type-agnostic way. For example,
IComparable<T> defines an interface that specifies a comparison between objects of type
T is defined by you where needed.
One of the most common ways to use generics is in collection classes. Before generics, the ArrayList was commonly used to ...