您的位置:首页 > 移动开发 > Unity3D

在Unity中使用C#的深度拷贝

2012-05-08 09:53 337 查看
网上看到别人在写这样一个方法,就尝试能够在Unity中使用该方法。

记住要使用的程序包:

using System.IO;
using System.Runtime.Serialization.Formatters.Binary;

public object DeepCopy(object src)
{
MemoryStream ms = new MemoryStream();
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(ms, src);

ms.Seek(0, SeekOrigin.Begin);
object dst = bf.Deserialize(ms);
ms.Close();
return dst;
}


测试代码如下:

int[] temp = new int[] {1,2,3 };

int[] copy = (int[])DeepCopy(temp);

copy[1]=34;
Debug.Log(copy[0]+":"+copy[1]+"--"+temp[0]+":"+temp[1]);


测试结果如下:

1:34--1:2

深度拷贝成功,这是使用对象序列化的方法实现的深度拷贝!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: