zoukankan      html  css  js  c++  java
  • Object_Clone

            private object CloneObject(object o)
            {
                Type t = o.GetType();
                PropertyInfo[] properties = t.GetProperties();

                Object p = t.InvokeMember("", System.Reflection.BindingFlags.CreateInstance, null, o, null);

                foreach (PropertyInfo pi in properties)
                {
                    if (pi.CanWrite)
                    {
                        pi.SetValue(p, pi.GetValue(o, null), null);
                    }
                }

                return p;
            }

    还有一种方式,可以利用运行时序列化来deep clone.(前提是该object一定是Serializable的)

    static object DeepClone(object original)
            {
                using (MemoryStream stream = new MemoryStream())
                {
                    BinaryFormatter formatter = new BinaryFormatter();
                    formatter.Context=new StreamingContext(StreamingContextStates.Clone);
                    // Serialize the original object to memory
                    formatter.Serialize(stream, original);

                    stream.Position = 0;
                    // Deserialize memory stream to a new copy object
                    return formatter.Deserialize(stream);
                }
            }

  • 相关阅读:
    8.30 树上最大流
    8.30 巫师之旅
    将一个文件夹中所有图片的名字填充为6位数的长度
    将位于同一文件夹中的多个视频中的图片保存在一个文件夹中
    将视频中所有图片保存到一个文件夹中
    pytorch的基础记录
    mnist数据集进行自编码
    循环神经网络进行回归
    循环神经网络进行分类
    卷积神经网络
  • 原文地址:https://www.cnblogs.com/leon032/p/2144759.html
Copyright © 2011-2022 走看看