小编Mer*_*ian的帖子

在不参考原件的情况下复制对象

我有一个函数,它从列表中获取一个对象作为参数。我创建了这个对象的一个​​新实例,并使它等于传递给函数的对象。我更改了新对象的一些属性,但这些更改也会应用于列表中的原始对象。例子:

public void myFunction(Object original)
{
    var copyOfObject = original;

    copyOfObject.SomeProperty = 'a';
}
Run Code Online (Sandbox Code Playgroud)

从阅读中,我想我正在创建原始对象的浅表副本,因此当我更新新对象的属性时,这会导致原始对象的属性更改为?我见过一些复制整个对象列表以创建深层副本的示例,但我只想创建这个单个对象的深层副本,而不是整个列表。我可以这样做而不必做:

  copyOfObject = new Object();
  copyOfObject.someProperty = original.someProperty;
Run Code Online (Sandbox Code Playgroud)

在进行更改之前?

c#

5
推荐指数
1
解决办法
7310
查看次数

标签 统计

c# ×1