考虑我的代码:
public class MyClass
{
//...
}
object ob = new MyClass();
Type t = ob.GetType();
有了这些信息,我需要在运行时进行ob
转换。MyClass
我该怎么做呢?
Convert.ChangeType
就是你要找的。
// With ob and t from your example.
var myClassInstance = Convert.ChangeType(ob, t);
但正如一些人所建议的那样,最好首先知道为什么需要这个。您解决问题的方法很可能有异味,并且可以更容易地完成,无需任何类型的功夫。
假设MyClass
在编译时已知:
object ob = new MyClass();
if (ob.GetType() != typeof(MyClass))
MyClass convertedObject = (MyClass)ob;