请看下面提到的以下几行代码:
byte[] a = { 1, 2, 3, 4 };
byte[] b = a; // b will have all values of a.
a = null;
在 C# 中 byte[]
是引用类型。现在,如果第 3 行中的 a = null
,那么为什么 b
不是 null,因为它是一个引用类型。如果我们检查 b
,它仍将具有 a
的所有值。
最佳答案
首先,您在内存中的某处创建一个数组,例如从地址 1000
开始。 a
是一个引用,它不包含数组,它包含地址1000
。 b
也包含这个地址。在第 3 行中,您将 a
改为指向 null
,但 b
仍指向地址为 1000
的数组>.
您编辑了引用 (a
),您没有编辑它引用的对象 ({1,2,3,4}
)。
关于C# 值和引用类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23107941/