欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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

程序员文章站 2022-04-21 21:53:06
...
先让我们了解下什么叫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);   
              
        }  
    }  
}

输出结果:(完全一致^_^)

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

实例探索:

上面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>

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

通过以上例子说明Struct类型与Class类型是可以与object类型相互转化的,其转化过程是这样:

Struct ---->object---->struct;(只有Struct---->Object是不能输出值的),在转化过程中不会改变stu中的值

以上就是C#学习日记14---引用类型 之 object类的内容,更多相关内容请关注PHP中文网(www.php.cn)!