使用类型定义新变量
本文关键字:变量 新变量 类型 定义 | 更新日期: 2023-09-27 18:20:16
我想知道是否可以使用Type
将obect转换回其原始类型。我现在有这样的代码,但这不起作用。我在网上看过,但我得到的是具有泛型类型的方法,比如这样。
public static T method<T>(string name)
{
return (T)objects[name];
}
但我在找这样的东西。
public static dynamic GetObject(string name)
{
Type t = objects[name].GetType();
t test = (t)objects[name]; <--- Is it possible to do something like this?
}
如果这不起作用,有什么好方法可以得到同样的结果?
提前感谢您的回复。
如果要将命名对象返回为dynamic
,则不需要该类型。只需返回它,运行时绑定就会为您处理此问题(或在运行时引发异常)。
public static dynamic GetObject(string name)
{
return objects[name];
}
您可以使用Reflection创建一个绑定的泛型Type
,并将特定的Type
作为类型参数。完成此操作后,可以使用Activator.CreateInstance
创建该类型的实例。您创建的泛型类型可以基于纯粹为此目的定义的开放泛型类,因为它可以对类型T
执行任何所需的操作。请注意,如果T
有约束,那么如果尝试的类型参数不满足这些约束,则创建泛型类型的尝试将失败。