【发布时间】:2014-05-31 05:41:47
【问题描述】:
请看下面提到的以下代码行:
byte[] a = { 1, 2, 3, 4 };
byte[] b = a; // b will have all values of a.
a = null;
在 C# 中,byte[] 是一个引用类型。现在如果 a = null 在第 3 行,那么为什么 b 不为空,因为它是一个引用类型。如果我们检查b,它的所有值仍然是a。
【问题讨论】:
-
因为您设置了对
a的空引用,而b仍在引用字节数组 -
@EhsanSajjad
byte[]是 reference 类型 -
byte 是值类型,但所有数组都是引用类型:msdn.microsoft.com/en-us/magazine/cc301755.aspx - 第 1 段
-
Note that every array is a reference type,即使它的成员是值类型。参考:msdn.microsoft.com/en-us/library/t63sy5hs.aspx -
@EhsanSajjad 只需查看Array 的文档并注意它是
public abstract class
标签: c# value-type reference-type