rinysky

  众所周知在C++、C中有一个内存拷贝函数memcpy,但是在C#似乎没有这个方法,如此,我们new出来的对象又都是引用类型,给我们的赋值多少带来些麻烦,今天在做一个项目的时候就出现了这种情况。

1 Student std1 = new Student();
2 Student std2 = std1;


以上代码就是我们经常用到的赋值方式,如果修改std2中的值,std1的值也会随着变,而很多时候我们不希望std1跟着一起变,所以就需要我们进行内存拷贝来实现:

 

  public object Clone()
        {
            BinaryFormatter BF = new BinaryFormatter();

            MemoryStream ms = new MemoryStream();

            BF.Serialize(ms, this);

            ms.Flush();

            ms.Position = 0;   //内残流指针返回流动开始处,否则调用Deserialize方法会抛出异常

            return (BF.Deserialize(ms));

            //throw new Exception("The method or operation is not implemented.");
        }


在此需要注意,该方法是接口类ICloneable的方法,ICloneable支持克隆操作,类需要继承该接口并去实现这个方法。

分类:

技术点:

相关文章:

  • 2022-12-23
  • 2022-02-08
  • 2022-02-08
  • 2022-02-26
  • 2021-12-01
  • 2022-02-08
  • 2021-07-16
猜你喜欢
  • 2022-02-08
  • 2022-02-08
  • 2021-08-19
  • 2022-02-08
  • 2022-12-23
  • 2022-02-08
相关资源
相似解决方案