Convert.ChangeType()是否创建对象的副本或返回原始对象的引用?

时间:2012-01-27 06:35:56

标签: c# .net memory

我有这个数据可能非常大,这可能是一个xmlstring,dataset,datatable,datarowcollection。此数据将与其类型一起传递给泛型方法。

void GenericMethod(object data, Type t)
{
   var d = Convert.ChangeType(data, t);  
   //some tasks to do 
}

问题:如果数据是1GB,ChangeType会创建另一个1GB的对象吗? 我只想确定,因为内存使用情况。

1 个答案:

答案 0 :(得分:3)

Convert.ChangeType调用实例的IConvertible实现,可以随意执行任何操作。

如果传递的对象未实现IConvertible,则抛出异常。