C#中的拆箱和装箱

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 01:31:17

C#中的拆箱和装箱
C#中的拆箱和装箱

C#中的拆箱和装箱
装箱 是值类型到 object 类型或到此值类型所实现的任何接口类型的隐式转换.对值类型装箱会在堆中分配一
个对象实例,并将该值复制到新的对象中.
拆箱 是从 object 类型到值类型或从接口类型到实现该接口的值类型的显式转换.
比如:装箱时,变为引用对象,会多出一个方法表指针,这会有何用处呢? 通过示例来进一步探讨.
例子:
Struct A : ICloneable
{
public Int32 x;
public override String ToString()
{
return String.Format(”{0}”,x);
}
public object Clone()
{
return MemberwiseClone();
}
}
static void main()
{
A a;
a.x = 100;
Console.WriteLine(a.ToString());
Console.WriteLine(a.GetType());
A a2 = (A)a.Clone();
ICloneable c = a2; Ojbect o = c.Clone();
}