簡體   English   中英

從System.Type初始化通用對象

[英]Initialize generic object from a System.Type

我需要創建一個泛型類型,但我不知道編譯時的類型。 我想這樣做:

Type t = typeof(whatever);
var list = new List<t>

這不會編譯,因為t不是有效類型。 但它確實知道一個有效的類型。 有沒有辦法從System.Type中動態創建通用列表? 我可能需要反思,那沒關系,我只是有點迷失在這里。

像這樣:

Type t;
Type genericListType = typeof(List<>).MakeGenericType(t);
object list = Activator.CreateInstance(genericListType);

請注意,您只能將其分配給object類型的變量。 (雖然你可以轉換為非通用的IList接口)

要使用list變量,您可能需要反思。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM