博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
类型 (一)
阅读量:5373 次
发布时间:2019-06-15

本文共 997 字,大约阅读时间需要 3 分钟。

 类型概述  

   所有类型都是从Object类派生来的,Object类提供4个公共的实例方法,分别是Equals,GetHashCode,ToString,GetType。2个受保护的方法,分别是Finalize,MemberwiseClone, 如图所示:    

                                  

                  int a=0;

                  a.GetType();

注意

  上面代码存在一个隐式装箱操作,因为这是由System.Object定义的(不能被重写),这些方法期望This参数是指向堆上一个对象的指针,而这只能通过装箱获得。(每个方法事实上第一个参数都是一个隐含的This)

 

强制类型转换需要有继承关系

1 从派生类向基类不需要转换

2 从基类向派生类需要转换

 

namespace Test

{

    class Dock

    {}

    class Program

    {

        static void Main(string[] args)

        {

            //不需要类型转换

            object o=new Dock();

            //需要类型转换

            Dock d = (Dock)o;

        }

    }

}

 

 

用Is和As进行强制类型转换

is偏向判断,as偏向转换。

Is永远不会抛出异常, 有两种情况返回false一种情况返回true

class Program

    {

        static void Main(string[] args)

        {

            Dock d1 = new Dock();

            Dock d2=null;

            //返回false

            Boolean b1 = (d is String);

            //返回false

            Boolean b2=(d2 is Dock);

            //返回True

            Boolean b2 = (d is Dock);

        }

    }

 

 

 As也永远不会抛出异常,返回转换结果或者Null

 

 

namespace Test

{

    class Dock

    {}

    class Program

    {

        static void Main(string[] args)

        {

            Dock d1 = new Dock();

            object o1 = new object();

            //返回Null

            Dock d = o1 as Dock;

            //转型成功

            object o = d1 as object;

        }

    }

}

 

转载于:https://www.cnblogs.com/blue-th/archive/2008/09/22/1295675.html

你可能感兴趣的文章
特征值提取之 -- TF-IDF值的简单介绍
查看>>
MySQL安装中无法通过命令删除原有权限的解决办法
查看>>
【思维一转天地宽】根据银行卡号如何判断是对公户还是个人户?
查看>>
支付同步和异步处理关系
查看>>
java基本算法
查看>>
Day34
查看>>
类型 (一)
查看>>
Emberjs之ComputedProperty
查看>>
后台管理系统整体布局
查看>>
BZOJ3159: 决战
查看>>
Linux内核探索之路——关于书
查看>>
05 JDK1.5 Lock锁
查看>>
20145339顿珠 《网络对抗技术》 信息搜集与漏洞扫描
查看>>
关于回调函数
查看>>
要给出互联网解决社会性问题的步骤与方法
查看>>
android闹钟(三):实现时钟功能
查看>>
人生如拐,世事如弯
查看>>
Java学习不走弯路教程(2.Eclipse环境搭建)
查看>>
C语言数据类型
查看>>
关于每次取PC的值为PC+4的问题
查看>>