zoukankan      html  css  js  c++  java
  • c#类型转换操作符:as和is

      显式的转换可能会抛出异常,而异常的代价在运行时是高昂的。C#有两个操作符(as和is)可以解决这个问题,它们都保证不抛出异常。

      is:表示是否能将一个给定的表达式转换为给定的类型,这种转换可能是引用转换,也可能是装箱或拆箱操作,其结果为布尔型。

        例: string strName="Davi";

          Console.WriteLine("strName {0} string", strName is String? "is","isnot");  //结果为:strName  is  String

          Console.WriteLine("strName {0} object", strName is Object ? "is","isnot");  //结果为:strName  is  object

        注:is不考虑任何基于用户自定义类型的转换。

      as:类似于is操作符,但它会返回一个目标类型的引用。as在不能做转换时返回null。

         例: MyType myObj1=new MyType();

           MyBaseType baseOjb1=new MyBaseType();

           MyBaseType baseOjb2=myObj;

          

           MyType myObj2=baseOjb2 as MyType;  //成功转换为MyType

           myObj2=baseOjb1 as MyType;  //失败,myObj2=null

           

      小结:如果需要测试一个变量是否为某种类型,用is 。

         如果要将一个变量转换为某种类型,用as 。如果用is的话,需要进行两次类型查找操作(先判断,再转换),而as只需要一次。

      

    静守己心,看淡浮华
  • 相关阅读:
    【Socket】linux无连接编程技术
    【Socket】linux套接字技术之tcp
    【线程】linux之多线程同步互斥技术
    【线程】linux之thread错误解决方案
    【消息】linux之消息队列
    【Mysql】linux连接mysql错误解决方案
    【Mysql】Fedora下 Mysql 安装及配置
    hdu2457
    hnu10104
    hdu4117
  • 原文地址:https://www.cnblogs.com/jianglingli83/p/3009276.html
Copyright © 2011-2022 走看看