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只需要一次。

      

    静守己心,看淡浮华
  • 相关阅读:
    xampp+vscode开发php的配置流程
    如何开始学习以太坊及区块链
    java动态生成带下拉框的Excel导入模板
    汉字转拼音
    Git+Gradle+Eclipse构建项目
    test
    MacOS这idea快捷键
    HashMap扩容全过程
    NIO理解
    详解MySQL 内连接、外连接、左连接、右连接
  • 原文地址:https://www.cnblogs.com/jianglingli83/p/3009276.html
Copyright © 2011-2022 走看看