如何获得泛型类型的类型参数?
问题描述:
我认为这是一个简单的问题,但我已经搜索周围,似乎无法轻松找到答案。如何获得泛型类型的类型参数?
,如果你有
var list = List<int>();
... fill list ...
,你想在列表中的泛型类型,我知道你可以只输入:
var t = list.FirstOrDefault().GetType();
有另一种方式通过只是名单要做到这一点,而不是指枚举?
原因是,我有一个System.Data.Linq.Table<TABLE1>
,我想要做的是从它得到TABLE1
的类型。
这样:
var table = new DataContext().TABLE1s; // this is Table<TABLE1>
var tableType = table.GetType().SomeMethod();
// i want tableType to equal TABLE1.GetType()
答
试试这个让表的实体类型
var tableType =table.GetType().GetGenericArguments()[0];
答
Type GetType<T>(Table<T> table)
{
return typeof(T);
}
var table = new DataContext().TABLE1s; // this is Table<TABLE1>
var tableType = GetType(table);
以及..没想到!太反感了......呃! – benpage 2010-03-31 00:21:13
太多笔记.... ;-) http://www.youtube.com/watch?v=dCud8H7z7vU – 2010-03-31 00:22:48