从类型对象转换为Type

时间:2012-12-18 09:55:31

标签: c# casting runtime

考虑我的代码:

public class MyClass
{
//...
}

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

有了这些信息,我需要在运行时将ob投射到MyClass。 我该怎么做?

2 个答案:

答案 0 :(得分:3)

您正在寻找

Convert.ChangeType

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

但正如有些人所说,最好知道为什么你首先需要这个。你可以在处理这个问题的过程中找到一种气味,而且没有任何类型的功夫,它可以更轻松地完成。

答案 1 :(得分:0)

假设在编译时知道MyClass

object ob = new MyClass();

if (ob.GetType() != typeof(MyClass))
        MyClass convertedObject = (MyClass)ob;