【发布时间】:2014-12-20 00:01:09
【问题描述】:
我在搜索 C# 中的装箱和拆箱时发现了以下代码 sn-p。
class TestBoxing
{
static void Main()
{
int i = 123;
// Boxing copies the value of i into object o.
object o = i;
// Change the value of i.
i = 456;
// The change in i does not effect the value stored in o.
System.Console.WriteLine("The value-type value = {0}", i);
System.Console.WriteLine("The object-type value = {0}", o);
}
}
/* Output:
The value-type value = 456
The object-type value = 123
*/
在这里它说即使他的值 i 改变了 o 的值保持不变。如果是这样,那么 o 引用的值是“123”而不是 i。是这样吗?如果 o 存储了 i 的值那么当 I 的值改变时, o 的值也会改变。如果我错了,请纠正我。
【问题讨论】:
-
// Boxing copies the value -
需要区分值类型和引用类型。除非您在传递给方法时使用 ref 或 out 关键字,否则值类型总是在分配时被复制。引用类型不会复制而是指向。