2013-12-09 68 views
0

我想創建方法,在論證將採取鍵入使用它,例如類型泛型列表 類型:名單這需要從方法參數

MyClass something = new MyClass(); 
Type myType = something.GetType(); 

public void createList(Type type) 
{ 
List<type> myList = new List<type>(); // <-- How can I achieve that? 
... 
} 

任何想法? :)

+0

是什麼你創建它之後,實際上是在做這個清單嗎?我注意到你的方法實際上並沒有返回它(或任何東西),所以我只是想知道是否有更好的東西可以做... – Chris

回答

1

通過使你的核心方法一般,這樣的啓動關閉:

public void createList<T>() 
{ 
    List<T> myList = new List<T>(); 
    ... 
} 

並提供使用反射動態調用泛型方法的非泛型重載:

public void createList(Type t) 
{ 
    this.GetType() 
     .GetMethod("createList", Type.EmptyTypes) 
     .MakeGenericMethod(t) 
     .Invoke(this, null); 
} 
相關問題