snippetcsharpCritical
How to get the type of T from a member of a generic class or method
Viewed 0 times
howfromclassmemberthemethodgenerictypeget
Problem
Let's say I have a generic member in a class or method, like so:
When I instantiate the class, the
I would like to know what type of objects the list of my class contains. So what type of
I cannot do
public class Foo
{
public List Bar { get; set; }
public void Baz()
{
// get type of T
}
}When I instantiate the class, the
T becomes MyTypeObject1, so the class has a generic list property: List. The same applies to a generic method in a non-generic class:public class Foo
{
public void Bar()
{
var baz = new List();
// get type of T
}
}I would like to know what type of objects the list of my class contains. So what type of
T does the list property called Bar or the local variable baz contain?I cannot do
Bar[0].GetType(), because the list might contain zero elements. How can I do it?Solution
If I understand correctly, your list has the same type parameter as the container class itself. If this is the case, then:
If you are in the lucky situation of having
Type typeParameterType = typeof(T);If you are in the lucky situation of having
object as a type parameter, see Marc's answer.Code Snippets
Type typeParameterType = typeof(T);Context
Stack Overflow Q#557340, score: 912
Revisions (0)
No revisions yet.