当前位置:  开发笔记 > 编程语言 > 正文

确定运行时的类型并将其应用于泛型类型 - 我该怎么做?

如何解决《确定运行时的类型并将其应用于泛型类型-我该怎么做?》经验,为你挑选了1个好方法。

我想创建一个强类型列表并在运行时决定类型.这是我的代码.我认为它应该工作,但它没有:)

        Type elementType = Type.GetType(parts[0].Trim(),false,true);
        var elementsBeingSet = new List();

你有什么想法如何创建一个强类型列表,其类型我将在运行时决定?

重复:这是其他版本:

是否无法动态使用泛型?

动态声明泛型类型实例

使用仅在执行时知道的类型参数调用泛型方法

configurator.. 20

用途Type.MakeGenericType(type[]):

Type elementType = GetElementType(); // get this type at runtime
Type listType = typeof(List<>);
Type combinedType = listType.MakeGenericType(elementType);
IList elements = (IList) Activator.CreateInstance(combinedType);

您必须使用IList保留结果 - 因为您不知道将在运行时使用的实际类型.

对于具有多个类型参数的泛型类型,您可以使用类似的东西Dictionary<,>.

另请参见http://msdn.microsoft.com/en-us/library/system.type.makegenerictype.aspx



1> configurator..:

用途Type.MakeGenericType(type[]):

Type elementType = GetElementType(); // get this type at runtime
Type listType = typeof(List<>);
Type combinedType = listType.MakeGenericType(elementType);
IList elements = (IList) Activator.CreateInstance(combinedType);

您必须使用IList保留结果 - 因为您不知道将在运行时使用的实际类型.

对于具有多个类型参数的泛型类型,您可以使用类似的东西Dictionary<,>.

另请参见http://msdn.microsoft.com/en-us/library/system.type.makegenerictype.aspx

推荐阅读
mobiledu2402852413
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有