Generics allow you to delay the specification of the data type of programming elements in a class or a method, until it is actually used in the program. In other words, generics allow you to write a class or method that can work with any data type.
The following are the features of generics in C# −
Create generic classes constrained to enable access to methods on particular data types.
Get information on the types used in a generic data type at run-time by means of reflection.
Maximize code reuse, type safety, and performance.
The .NET Framework class library contains several new generic collection classes in the System.Collections.Generic namespace. You may use these generic collection classes instead of the collection classes in the System.Collections namespace.
Create your own generic interfaces, classes, methods, events, and delegates.