对象clone,是用序列化方式和用赋值方式比较
使用序列化方式,编码少,不易出错。
使用赋值方式,new出对象后,将原对象的值再手工赋值过去。看了大量资料,哪位高人说说两种方式哪种性能比较高

解决方案 »

  1.   

    序列化是获取对象并将它们的状态信息转换为可以存储或传输的形式的过程。序列化的基本思想是对象将其当前状态写到临时性(内存或网络流)或持久性存储区中,对象的当前状态通常由其成员变量的值指示。随后,可以通过从存储区读取或反序列化对象的状态来重新创建对象。序列化处理在序列化对象时使用的对象指针和循环对象引用的所有详细信息。
    赋值语句将表达式的值赋给变量。通常,如果被赋值的变量是一个属性,该属性必须为读写或只写的;否则将发生编译时错误。如果变量是一个只写变量,赋值必须发生在适合变量类型的 Shared 或实例构造函数内;否则将发生编译时错误。
      

  2.   

    个人认为,性能并没有太大的区别,但相对的功能2种方式却有不同。
    首先,并不是任何类型都能序列化的,这就限制了,序列化方式的使用范围。虽然能对类中的引用类型进行序列化,但也只限于那些继承IClone借口的。换句话说,序列化方式和浅Copy几乎没有区别,但重新new对象就不同。ps:个人推荐使用序列化,不用为每次类的变更,而变更clone的代码。还有继承IClone的Clone方法一般是浅Copy,序列化一般就能够满足你的要求了。