万物之父的基本概念
关键字 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
转为值类型称为拆箱
装箱会把值类型用引用类型存储,栈内存会迁移到堆内存中
拆箱会把引用类型存储的值类型取出来,堆内存会迁移到栈内存中
不确定类型时方便参数的存储和传递,但是存在内存迁移增加性能消耗