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操作符在执行效率上更胜一筹,我们在实际的编程中应该体会其异同,酌情量才。 

  • 相关阅读:
    1370
    1336
    1298
    1289
    Buy Tickets(poj2828)
    The Balance(poj2142)
    1067
    Lightoj1011
    1319
    Back to Underworld(lightoj 1009)
  • 原文地址:https://www.cnblogs.com/scmail81/p/8678939.html
Copyright © 2011-2022 走看看