先说一下objict类,这是一个所有类的父类。可以指向所有类。
A是自定义的类型
class A
{
public int a;
public A(int par)
{
a = par;
}
}
装箱操作:
int i =42;
object o = i;
如图下,装箱操作是系统默认完成的。
拆箱操作:
int j = 42;
object o = j; //装箱操作,(不用加显式类型转换)
int i = (int)o;//拆箱操作,(需要加显式类型转换符,系统自动识别为拆箱操作);
A a1= new A(50);
object o1 = a1;
int i = (int)o;//拆箱失败,因为拆箱前必须有装箱,而前面只是将A类型的变量赋值给o;不是装箱操作
//会抛出一个异常
//就算要转换,也不是转换成int类型、应该是A类型
A a2 = (A)o;//此处为类型转换