gpt4 book ai didi

c# - 从 System.Type 初始化通用对象

转载 作者:IT王子 更新时间:2023-10-29 04:43:27 25 4
gpt4 key购买 nike

我需要创建一个泛型类型,但我不知道编译时的类型。我想这样做:

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

这不会编译,因为 t 不是有效类型。但它确实知道有关有效类型的所有信息。有没有办法像这样从 System.Type 动态创建通用列表?我可能需要反射(reflection),没关系,我只是有点迷失在这里。

最佳答案

像这样:

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

请注意,您只能将其分配给类型为object 的变量。 (尽管您可以转换为非通用 IList 接口(interface))

要使用 list 变量,您可能需要反射。

关于c# - 从 System.Type 初始化通用对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2831622/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com