zoukankan      html  css  js  c++  java
  • 读你必须知道的.NET(一)

    一直听说这本书不错,可是,我并没有购买,只是在博客园看作者Anytao对此作出的一系列分享:http://www.cnblogs.com/anytao/archive/2007/09/14/must_net_catalog.html,讲解的一些内容对于面试似乎有很大帮助,感觉胜于所谓的面试宝典~哈哈,个人意见啦~

    开篇提到了类型转换的操作符——is和as:

    is:检查对象类型的兼容性,并返回bool值结果,永远不会抛出异常,若对象为null,返回值就为null。这个操作符主要用于判断一种类型可否当作另一种类型来使用。

    object o = new object();
    class A
    {
    }
    if(o is A)
    {
        A a = (A) o;
    }
    

    as: 检查对象类型的兼容性,兼容时返回同一个对象的非null引用,不兼容则返回null,永远不会抛出异常,如果试图直接使用最终生成的引用,则会抛出NullReferenceException的异常。as主要用于尝试将一种类型转换为另一种类型,而且它必须用于引用类型或可为null的类型。

    boject o = new object();
    class B
    {
    }
    
    B b = o as B;   //将o转型为B,无论是否转型成功,都不会抛出异常
    b.ToString(); //转型失败后b的值为null,此时访问b会抛出NullReferenceException的异常

    由于as只转换一次,之后判断转换后的变量是否为null即可,因此它的性能较is高。

  • 相关阅读:
    Dingo/api 学习笔记
    Composer install 报错
    bootstrap4 调整元素之间距离
    css font-family常用的黑体宋体等字体中英文对照
    mac 开关机
    lodash.memoize
    Evevt Loop 事件循环
    mac 安装 XX-Net-3.12.11
    mac端口占用
    npm 安装/删除/发布/更新/撤销 发布包
  • 原文地址:https://www.cnblogs.com/Ribbon/p/2933519.html
Copyright © 2011-2022 走看看