【发布时间】:2011-02-23 13:25:08
【问题描述】:
我有一个像下面这样的静态数组
static byte[] myArray = {0x01,0x02};
我读到Array.clone does shallow copy。然后我执行下面的代码。
byte[] myArray2 = myArray.Clone() as byte[];
myArray2[0] = 0x05;
但是现在每个 myArray2[0] 和 myArray[0] 都包含不同的值。所以我认为 Array.Clone() 正在执行深层复制。你能解释一下为什么吗?
【问题讨论】:
-
嗨,浅拷贝或深拷贝在 byte 或 int 等简单值类型的上下文中没有意义。由于数组包含值而不是引用,因此一旦克隆它并更改其中任何一个中的值,此类更改不会传播到另一个数组。
标签: c#