您好,欢迎访问一九零五行业门户网

C#学习日记14---引用类型 之 object类

先让我们了解下什么叫object类
object类:
object类是所有类型的基类,所有类型都是由他派生而来,c#中所有的类都是直接或间接的从sytem.object类中继承,(可能有点迷糊,没关系,举个例子,如果object类是树干,我们前面所学的所有类就是 树枝 或者 树叶 了懂了吧)。因此,对object类型的变量可以赋予任何类型的值。
定一个object变量:
对object类型的变量声明,采用 object 关键字;这个关键字是在.net框架结构为我们提供的预定义名字空间system中定义的,是类system.object 的别名。定义格式是这样:object  变量名;
实例:
using system; using system.collections.generic; using system.linq; using system.text; namespace test { class program { static void main(string[] args) { object int,str,doub,ch; //定义4个object变量 int = 1; //整形赋值成功 str = "hc666"; //string类型赋值成功 doub = 12.32; //double 类型赋值成功 ch = '男'; //char 类型赋值成功 console.writeline("int = {0}\tstr = {1}\tdoub = {2}\tch = {3}",int,str,doub,ch); } } }
输出结果:(完全一致^_^)
实例探索:
上面object的定义中强调了,object是对所有的类型的基类,那我们定义一个struct类与class类也可以转化成object吗?? 在上面的代码我加入了一些元素:
using system; using system.collections.generic; using system.linq; using system.text; namespace test { class program { public struct student { public string name; public char sex; public uint age; } static void main(string[] args) { student stu = new student{ name = "hc666",sex = '男',age = 19 }; //初始化 stu object m = stu; //将stu转换为object类型的对象m student x = (student)m; //将object类型的对象m 转换为student x 要用强制转换 console.writeline("name:{0}\tsex:{1}\tage:{2}",x.name,x.sex,x.age); } } }
<span style="font-size:18px;">结果是这样的:</span>
通过以上例子说明struct类型与class类型是可以与object类型相互转化的,其转化过程是这样:
struct ---->object---->struct;(只有struct---->object是不能输出值的),在转化过程中不会改变stu中的值
以上就是c#学习日记14---引用类型 之 object类的内容。
其它类似信息

推荐信息