0

考虑我的代码:

public class MyClass
{
//...
}

object ob = new MyClass();
Type t = ob.GetType();

有了这些信息,我需要在运行时进行ob转换。MyClass我该怎么做呢?

4

2 回答 2

3

Convert.ChangeType就是你要找的。

// With ob and t from your example.
var myClassInstance = Convert.ChangeType(ob, t);

但正如一些人所建议的那样,最好首先知道为什么需要这个。您解决问题的方法很可能有异味,并且可以更容易地完成,无需任何类型的功夫。

于 2012-12-18T10:06:46.687 回答
0

假设MyClass在编译时已知:

object ob = new MyClass();

if (ob.GetType() != typeof(MyClass))
        MyClass convertedObject = (MyClass)ob;
于 2012-12-18T09:59:37.367 回答