Digamos que eu tenha um membro genérico em uma classe ou método, então:
public class Foo<T>
{
public List<T> Bar { get; set; }
public void Baz()
{
// get type of T
}
}
Quando eu instanciar a classe, o T
torna-se MyTypeObject1
, por isso, a classe tem uma propriedade lista genérica: List<MyTypeObject1>
. O mesmo se aplica a um método genérico em uma classe não genérica:
public class Foo
{
public void Bar<T>()
{
var baz = new List<T>();
// get type of T
}
}
Gostaria de saber que tipo de objetos a lista da minha classe contém. Portanto, a propriedade list chamada Bar
ou a variável local baz
, contém que tipo de T
?
Não posso Bar[0].GetType()
, porque a lista pode conter zero elementos. Como eu posso fazer isso?
object
,IList
ou similar - mas isso poderia muito bem ser a resposta certa.