Supponiamo che io abbia un membro generico in una classe o in un metodo, quindi:
public class Foo<T>
{
public List<T> Bar { get; set; }
public void Baz()
{
// get type of T
}
}
Quando ho un'istanza della classe, l' T
diviene MyTypeObject1
, quindi la classe ha una proprietà elenco generico: List<MyTypeObject1>
. Lo stesso vale per un metodo generico in una classe non generica:
public class Foo
{
public void Bar<T>()
{
var baz = new List<T>();
// get type of T
}
}
Vorrei sapere quale tipo di oggetti contiene l'elenco della mia classe. Quindi la proprietà list chiamata Bar
o la variabile locale baz
, contiene che tipo di T
?
Non posso farlo Bar[0].GetType()
, perché l'elenco potrebbe contenere zero elementi. Come posso farlo?
object
,IList
o simili - ma questo potrebbe benissimo essere la risposta giusta.