What does "T" mean in C#?


Question

I have a VB background and I'm converting to C# for my new job. I'm also trying to get better at .NET in general. I've seen the keyword "T" used a lot in samples people post. What does the "T" mean in C#? For example:

public class SomeBase<T> where T : SomeBase<T>, new()

What does T do? Why would I want to use it?

1
74
2/20/2015 2:15:41 PM

Accepted Answer

It's a symbol for a generic type parameter. It could just as well be something else, for example:

public class SomeBase<GenericThingy> where GenericThingy : SomeBase<GenericThingy>, new()

Only T is the default one used and encouraged by Microsoft.

50
12/30/2008 2:05:27 PM

T is not a keyword per-se but a placeholder for a generic type. See Microsoft's Introduction to Generics

The equivalent VB.Net syntax would be:

Public Class SomeBase(Of T As {Class, New}))

Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow
Icon