What are generics in C#, illustrated with a simple example? What are some related articles or websites for this topic?
3 Answers
Generics refers to the technique of writing the code for a class without specifying the data type(s) that the class works on.
You specify the data type when you declare an instance of a generic class. This allows a generic class to be specialized for many different data types while only having to write the class once.
A great example are the many collection classes in .NET. Each collection class has it's own implementation of how the collection is created and managed. But they use generics to allow their class to work with collections of any type.
http://msdn.microsoft.com/en-us/library/ms379564(VS.80).aspx

- 65,341
- 71
- 269
- 466
-
12+1 For trying to elaborate and making it easier for the op to understand! – Nikos Steiakakis Dec 30 '10 at 07:48
-
thnx for your explanation. I got some basic idea now about generics. – Karthik May 29 '13 at 11:03
-
Also Points mentioned in the answer applies to individual methods as well. – Sai Sep 11 '14 at 22:50
-
Brief answer successfully explains what multiple lengthy articles fail to get across to the reader. – FBryant87 Oct 21 '14 at 12:25
-
"You specify the data type when you declare an instance of a generic class" - absolutely superb – Gerard Simpson Mar 01 '18 at 05:16
There is really nothing special about Generics in C#. C# just likes to take well-known concepts and call them something different (e.g. calling procedures "static methods" or calling flatMap
"SelectMany
"). In this particular case, Generics are just C#'s name for rank-1 parametric polymorphism.

- 363,080
- 75
- 446
- 653
-
3I need to memorise this to be used for answers on interviews.. I think it blow their socks off.. (I have no idea what you said but it sounds great!) – Piotr Kula Feb 01 '17 at 14:04
From MSDN:
Generics are the most powerful feature of C# . Generics allow you to define type-safe data structures, without committing to actual data types. This results in a significant performance boost and higher quality code, because you get to reuse data processing algorithms without duplicating type-specific code. In concept, generics are similar to C++ templates, but are drastically different in implementation and capabilities.

- 8,714
- 7
- 67
- 92

- 31
- 1