1)首先定义一个结构

值类型,再深入一点!        struct Person
        }

2)然后将值类型装箱

值类型,再深入一点!static void Main ( string[] args )
    }

最后结果输出:2和1

小结:
      在将值类型装箱时,其实是得到了当前值类型的一个副本,而不是引用(通常类之间传递的都是引用),说得简单一些就是将该值类型的信息复制到obj中,复制完后,obj将不再依赖于原先的Person p,所以对p.Age重新赋值,也不会再影响到obj。
      如果这里不是struct Person而是class Person的话,那么最后输出的结果则都为2,因为赋给obj的是变量p的引用。
      同样的道理,如果对int等值类型的变量进行装箱,结果也和上面一样。

相关文章: