Como obter o tipo de T de um membro de uma classe ou método genéric
Digamos que eu tenho 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 instanciamos a classe, oT
torna-seMyTypeObject1
, para que a classe tenha uma propriedade de 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 da lista chamadaBar
ou a variável localbaz
, contém que tipo deT
?
Eu nao posso fazerBar[0].GetType()
, porque a lista pode conter zero elementos. Como eu posso fazer isso