zoukankan      html  css  js  c++  java
  • C#中类型转换as用法

    在程序中,进行类型转换时常见的事,C#支持基本的强制类型转换方法,例如 

    Object obj1 = new NewType();
    NewType newValue = (NewType)obj1;

    这样强制转换的时候,这个过程是不安全的,因此需要用try-catch语句进行保护,这样一来,比较安全的代码方式应如下所示:

    Object obj1 = new NewType();
    NewType newValue = nulltry
    {
    newValue = (NewType)obj1;
    }
    catch (Exception err)
    {
    MessageBox.Show(err.Message);
    }

    但是上面的写法在C#中已是过时的写法,也是比较低效的写法,比较高效且时尚的写法是用as操作符,如下:

    Object obj1 = new NewType();
    NewTYpe newValue = obj1 as NewType;

    安全性:
    as操作符不会做过的转换操作,当需要转化对象的类型属于转换目标类型或者转换目标类型的派生类型时,那么此转换操作才能成功,而且并不产生新的对象【当不成功的时候,会返回null】。因此用as进行类型转换是安全的。
    效率:
    当用as操作符进行类型转换的时候,首先判断当前对象的类型,当类型满足要求后才进行转换,而传统的类型转换方式,是用当前对象直接去转换,而且为了保护转换成功,要加上try-catch,所以,相对来说,as效率高点。
    需要注意的是,不管是传统的还是as操作符进行类型转换之后,在使用之前,需要进行判断转换是否成功,如下:

    if(newValue != null)
    {
    //Work with the object named “newValue“
    }

    来自:https://blog.csdn.net/jiang13824690

  • 相关阅读:
    HTML5 拖放(Drag 和 Drop)详解与实例
    JS中的六大数据类型
    关于创建本地docker仓库
    关于使用国内dock仓库,网易、DaoCloud
    关于Docker开通远程访问端口2375
    多个消费者监听同一个队列
    SQLite -附加数据库
    解密JDK8 枚举
    LoraLU
    深入理解display属性
  • 原文地址:https://www.cnblogs.com/imhuanxi/p/15759754.html
Copyright © 2011-2022 走看看