这不是Type
所能提供的吗?还有其他方法可以实现以下目标吗?
Type t = typeof(Int32);
List<t> list = new List<t>();
根据docs提到的内容,这对我来说似乎是正确的用法:
代表类型声明:类类型,接口类型,数组 类型,值类型,枚举类型,类型参数,泛型 定义以及打开或关闭的构造通用类型
但是我觉得this是一个更好的描述,这意味着我不能使用上述的Type
类,因为它似乎只包含有关类型的信息:
类型描述数据类型。它将类型信息存储在变量中, 属性或字段。 Type类代表程序的元数据, 这是对其结构的描述,而不是说明 被执行。
我试图使用上面的命令来解决一个问题,其中我有一个“列表”,其中t
是用户定义的类型,该列表存储在类型为object
的字段中在以后的某个时候需要将其解析回其原始类型,我希望类Type
将允许我保留该类型,以便稍后再解析回原始类型。
我在追求这样的东西:
public IList ObjectToList(Type t, object o)
{
return new List<t>(o);
}
答案 0 :(得分:1)
这不是有效用法,因为它将无法编译。 Type类代表一个类型声明。 Type t = typeof(Int32);
将为您提供System.Type
的{{1}}对象,并分配给变量Int32
。实际上,它不能用作类型。
答案 1 :(得分:0)
不能将运行时变量用作类型标识符。
Type t = typeof(Int32);
实际上在变量Int32
中拥有t
的类型
您可以使用
List<Int32> list = new List<Int32>();