新浪博客怎么给自己网站做链接吗,电商ui设计是什么,嵌入式开发技术,西安旅游攻略自由行路线推荐万物之父#xff1a;object 基于里氏替换原则#xff0c;可以用object容器装载一切类型的变量。可以用来表示不确定类型#xff0c;作为函数参数类型 object是所有类型的基类
装箱拆箱 用object存值类型#xff08;装箱#xff09;→ 把值类型用引用类型存储#xff0c;…万物之父object 基于里氏替换原则可以用object容器装载一切类型的变量。可以用来表示不确定类型作为函数参数类型 object是所有类型的基类
装箱拆箱 用object存值类型装箱→ 把值类型用引用类型存储栈内存迁移到堆内存中 把object里面存的值转为值类型拆箱→ 把引用类型存储的值类型取出来堆内存迁移到栈内存中
好处不去定类型时可以用方便参数存储和传递
坏处存在内存的迁移增加了性能消耗
不是不用尽量少用 基础语法
//用装箱描述装箱拆箱
int i10;
object oi;//装箱
int j(int)0;//拆箱,使用括号强转
装箱拆箱示例
class Father{}
class Son : Father{public void Speak(){}}
-------------------------------------------------
object o new Son();
//用is as 来判断和转换即可
if( o is Son )
{(o as Son).Speak();
}//特殊的string类型
object str 123123;
string str2 str as string;//object转为string类型
string str3 str.ToString();object arr new int[10];
int[] ar arr as int[];//引用类型的数据都可以使用as来转换
int[] ar2 (int[])arr;
涉及到值类型的数据转换使用 括号强转
涉及到引用类型的数据转换使用 is 判断类型使用 as 转换 object和变长参数搭配使用
static void TestFun( params object[] array ){}
TestFun(1, 2, 3, 4f, 34.5, 123123, new Son());