zoukankan      html  css  js  c++  java
  • is和as

    在.NET中,一切类型都必须集成自System.Object类型,因此我们可以很容易的获得对象的准确类型,方法是:GetType()方法。那么.NET中的类型转换,应该考虑的地方有那些呢?

    is的规则如下:

    • 检查对象类型的兼容性,并返回结果,true或者false;
    • 不会抛出异常;
    • 如果对象为null,则返回值永远为false。
    其典型用法为: 
    object o = new object();
    class A{}
    if (o is A)  //执行第一次类型兼容检查
     

    {

     
      A a = (A) o;  //执行第二次类型兼容检查
    }
     
     

    as的规则如下:

    • 检查对象类型的兼容性,并返回结果,如果不兼容就返回null;
    • 不会抛出异常;
    • 如果结果判断为空,则强制执行类型转换将抛出NullReferenceException异常。
    其典型用法为:
    object o = new object();
    class B{}
    B b = o as B;  //执行一次类型兼容检查
    if (b != null)
    {
        MessageBox.Show("b is B's instance.");
    }
     

    结论

    纵上比较,is/as操作符,提供了更加灵活的类型转型方式,但是as操作符在执行效率上更胜一筹,我们在实际的编程中应该体会其异同,酌情量才。 

  • 相关阅读:
    awk使用
    SQL VIEW(视图)
    crontab使用
    SecureCRT
    Python异常
    Python字符串
    Python字典,列表,元组
    Python路径
    vim插件
    Python类
  • 原文地址:https://www.cnblogs.com/scmail81/p/8678939.html
Copyright © 2011-2022 走看看