执行Convert.ChangeType()创建对象的副本或返回原始对象的引用

本文关键字:返回 原始 对象 引用 副本 执行 ChangeType 创建对象 Convert | 更新日期: 2023-09-27 18:21:30

我有这个数据,它的大小可能很大,可以是xmlstring、dataset、datatable、datarowcollection。此数据将与其类型一起传递给泛型方法。

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

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

执行Convert.ChangeType()创建对象的副本或返回原始对象的引用

Convert.ChangeType调用实例的IConvertible实现,该实现可以自由执行任何它想做的事情。

如果传递的对象没有实现IConvertible,则会引发异常。