C#中的拆箱和装箱

来源:学生作业帮助网 编辑:作业帮 时间:2024/10/03 22:50:03
C#中的拆箱和装箱
xS]k`+/FAswsQ NHDbEjURڲZ2_Fx_?RdM899 EGF1Տh6=mvy{ OP~7YI!daTT+A6+=I4^c844_#[6L?#y*iWLNҳK7;7o.vlՀTsDZVJ07dXc톭<,@[+qZ|g@sE e7 μUdR*7uzk.sh-Uȧ34K$3fN:m٬sj%-UCB;,a^pY  a1v$%7Vq[ʬp8PB V㊴se%«ߩCOӦPchn!W8"` xYʫ p {(‹Қ@)zzAYa̽UDA'q>|Q|^q

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();
}