万物之父
关键字 object
object是所有类型的基类,他是一个类(引用类型)
作用
可以利用里氏替换原则 ,用object容器装所有对象
可以用来表示不确定类型 作为函数参数类型
万物之父的使用
cs
class Father
{
}
class Son:Father
{
public void Speak()
{
Console.WriteLine("s");
}
}
//main函数下
Father f = new Son();
if(f is Son)
{
(f as Son).Speak();
}
//引用类型
object o = new Son();
if(o is Son)
{
(o as Son).Speak();
}
//值类型
object o2 = 1f;
//强转
float f1 = (float)o2;
//string 类型
object str = "123123";
string str2 = str as string;
object arr = new int[10];
int[] ar = arr as int[];
装箱 拆箱
发生条件
用object存值类型(装箱)
再把object转为值类型 拆箱
装箱
把值类型用引用类型存储
把栈内存迁移到堆内存中
拆箱
把引用类型存储的值类型取出来
堆内存会迁移到栈内存中
好处 不确定类型时可以方便参数的存储和传递
坏处 存在内存迁移 增加性能消耗
cs
//装箱
object v = 3;
//拆箱
int intValue = (int)v;