A class, interface, structure, methods and delegate that specify a data type as parameter for its operation is called generic or parameterized type. Using generics it is possible to create single class for example that automatically works with different types of data. Generics enable type safety and code re-usability. For Eg class Abs<T>{...Here T is used as a placeholder for the actual type that will be specified when Abs abject is created for eg. like
Abs<int> a = new Abs<int>();