Demystifying C# Generics

AramT
3,138 views

Open Source Your Knowledge, Become a Contributor

Technology knowledge has to be shared and made accessible for free. Join the movement.

Create Content

Now we will be creating a generic class. You create it the same way you create a normal class, but you just add the parameter T at the end of the class name. You can define the parameter T everywhere inside the class, with members, properties, methods.

To call the Lesson class with the concrete type, you will need to initialize the object with the tags < > , and inside it you should specify the concrete type you want to create your Lesson class with.

The below code shows you can create your own generic class, run it to see test results
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
·namespace GenericsLesson
{
class Lesson<T>
{
private T t;
public void Set(T t){
this.t = t;
}
public T Get()
{
return t;
}
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
1
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Can we have a generic constructor? No, generic constructors are not allowed. Which means that you cannot define the parameter T on the constructor itself.

Read Jon Skeet's answer on stackoverflow regarding generic constructors.

You can still use a factory creator static method and define to it the parameter T, but still I don't think you really need that in most of the cases.

Open Source Your Knowledge: become a Contributor and help others learn. Create New Content