起因:自訂一個GridView控制項,其資料來源來源於一個通用方法Get<T>(),根據你傳入的T到資料庫中得到相應的資料,問題是定義GridView控制項時沒法在介面端設定使用泛型,只能在每個使用這個GridView控制項時綁定資料。如果你沒看懂這個起因也沒關係,我們用一段代碼來描述一下問題:
我希望使用的是從外邊傳過來的類型tt來調用test1範型方法
class Program
{
static void Main(string[] args)
{
MyClass m = new MyClass();
m.tt = typeof(Program);
m.test2();
}
}
class MyClass
{
public Type tt { get; set; }
public int userid { get; set; }
public string Name { get; set; }
public string test2()
{
// test1 <T>();
我希望使用的是從外邊傳過來的類型tt來調用test1範型方法
}
public string test1 <T>()
{
return typeof(T).ToString();
}
}
解決方案:
class MyClass
{
public Type tt { get; set; }
public int userid { get; set; }
public string Name { get; set; }
public string test2()
{
object result = typeof(MyClass).GetMethod("test1").
MakeGenericMethod(tt).Invoke(this, null);
return result.ToString();
}
public string test1<T>()
{
return typeof(T).ToString();
}
}