万物之父和装箱拆箱

万物之父的基本概念

关键字 object

object 是所有类型的基类

可以利用里氏替换原则,用 object 容器装所有对象

可以用来表示不确定类型,作为函数的参数类型


obejct的使用

//引用类型
object o = new Son();
Son s = new Son();
o = s;
//用object装载之后,用is和as判断和转换
if(o is Son)
{
    (o as Son).Speak();
}
//值类型
object o2 = 1;
//值类型要使用时要进行强转
int i = (int)o2;
//string类型
object str = "robot";
// string str2 = str as string;
string str2 = str.ToString();
//数组类型
object arr = new int[];
//int ar = (int[]) arr;
int[] ar = arr as int[];

装箱拆箱

obejct 存值类型时称为装箱

object 转为值类型称为拆箱

装箱会把值类型用引用类型存储,栈内存会迁移到堆内存中

拆箱会把引用类型存储的值类型取出来,堆内存会迁移到栈内存中

不确定类型时方便参数的存储和传递,但是存在内存迁移增加性能消耗

posted @ 2024-12-26 10:45  cannedmint  阅读(11)  评论(0)    收藏  举报