• 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

  • 相关阅读:
    jieba库的使用和词云
    类和正则表达
    数据库实践
    自己的第一个网页
    第一个爬虫和测试
    Linux 知识总结
    Python argparse模块基本用法
    Python面向对象编程
    linux Nginx发布基于PHP的WEB
    Linux nginx发布基于python的WEB环境
  • 原文地址:https://www.cnblogs.com/imhuanxi/p/15759754.html
Copyright © 2020-2023  润新知