¿Cómo obtener el tipo de T de un miembro de una clase o método genérico?
Digamos que tengo un miembro genérico en una clase o método, entonces:
public class Foo<T>
{
public List<T> Bar { get; set; }
public void Baz()
{
// get type of T
}
}
Cuando instancia la clase, laT
se convierte enMyTypeObject1
, entonces la clase tiene una propiedad de lista genérica:List<MyTypeObject1>
. Lo mismo se aplica a un método genérico en una clase no genérica:
public class Foo
{
public void Bar<T>()
{
var baz = new List<T>();
// get type of T
}
}
Me gustaría saber qué tipo de objetos contiene la lista de mi clase. Entonces la propiedad de lista llamadaBar
o la variable localbaz
, contiene qué tipo deT
?
No puedo hacerloBar[0].GetType()
, porque la lista puede contener cero elementos. ¿Cómo puedo hacerlo