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();
            }
        }
    }


  • 相关阅读:
    Java 读写Properties配置文件【转】
    leetcode_回文数
    leetcode_整数反转
    leetcode_两数之和
    DVWA_XSS(DOM)
    DVWA_File Upload 文件上传 抓包改包传木马 图片马的制作 Impossible的代码审计
    DVWA_File Inclusion 文件包含 远程文件包含拿webshell
    DVWA_Command Injection 命令注入
    bugku_本地包含
    sqli-labs-master-Less-5 基于聚合分组函数报错的双注入(盲注手注)还有一种基于溢出的报错双注入要整理
  • 原文地址:https://www.cnblogs.com/scottckt/p/1207233.html
Copyright © 2011-2022 走看看