如何创建对象的副本?

use*_*429 1 asp.net

我有一个名为的对象post,我声明了一个名为newPosttype post对象的新变量

var newPost = post

但是当我修改post对象的任何属性时,表示对象的Modified Influences属性newPost.

我该如何解决这个问题?

Bla*_*ICE 5

你需要做的是许多可能的事情之一.这是一对需要考虑的事情.

  1. 实施IClonable并做 var newPost = post.Clone();
  2. 在类上有一个构造函数,它有另一个实例作为参数,然后从传入的实例复制属性到新实例.即var newPost = new Post(post);

需要注意的是,您可能希望执行所谓的深度克隆对象的深层复制,因此,如果您的类具有任何对象属性,则这两个实例不会指向其属性的相同引用.