zoukankan      html  css  js  c++  java
  • c# 類中is 與as 運算符了解

    1、is運算符:
       用於检查对象是否与给定类型兼容。如果所提供的表达式非空,并且所提供的对象可以强制转换为所提供的类型而不会导致引发异常,则 is 表达式的计算结果将是 true。
        注意:
             1) is 运算符只考虑引用转换、装箱转换和取消装箱转换。不考虑其他转换,如用户定义的转换。
             2) is會影響效能。

    using System;
    class Fruit
    {
    }
    class Apple:Fruit
    {
        
    public int i=1;
    }

    class Conversion
    {
        
    static void Main()
        {
            Fruit f
    =new Apple();
           
    //is:判断f是否兼容于Apple类,is只返回Tru or False    
            if(f is Apple)
            {
                Apple a
    =(Apple)f;
                Console.WriteLine(a.i);
                Console.ReadLine();
            }
        }
    }

    2、as運算符:
        用于在兼容的引用类型之间执行转换。as 运算符类似于强制转换,所不同的是,当转换失败时,运算符将产生空,而不是引发异常。更严格地说,这种形式的表达式
         注意:
               1)as 运算符只执行引用转换和装箱转换。as 运算符无法执行其他转换,如用户定义的转换,这类转换应使用 cast 表达式来执行。
               2)as運算符在效能上比is快。

    using System;
    class Fruit
    {
    }
    class Apple:Fruit
    {
        
    public int i=1;
    }

    class Conversion
    {
        
    static void Main()
        {
            Fruit f
    =new Apple();
            
            
    //as:判断f是否兼容于Apple类,兼容时返回对Apple对象的引用,并将其赋于a;不兼容时,返回为Null
            Apple a=as Apple;
            
    if(a!=null)
            {
                Console.WriteLine(a.i);
                Console.ReadLine();
            }
        }
    }


  • 相关阅读:
    爬虫header和cookie
    爬虫代理squid
    response对象
    pyspider中内容选择器常用方法汇总
    非阻塞 sleep
    post请求体过大导致ngx.req.get_post_args()取不到参数体的问题
    常用lua代码块
    nginx静态文件缓存的解决方案
    lua-resty-gearman模块
    非在线PDF转图片!!!
  • 原文地址:https://www.cnblogs.com/scottckt/p/1207233.html
Copyright © 2011-2022 走看看