`

C#中as与is的用法(转)

    博客分类:
  • C#
阅读更多
一、类型转换

1.任何类型都可以转换为其基类类型,用隐式转换完成;
2.任何类型转换为其派生类型时,必须进行显示转换。如:(类型名)对象名;
3.使用GetType可以取得任何对象的精确类型;
4.基本类型可以使用Convert类实现类型转换;
5.除了string以外的其他类型都有Parse方法,用于将字符串类型转换成对应的基本类型;
6.值类型和引用类型的转换称为装箱(boxing)或拆箱(unboxing);

二、is/as示例

is转换规则:

1. 检查对象类型的兼容性,并返回结果true(false);
2.不会抛出异常;
3.如果对象为null,刚返回false;

示例:

    object o = "abc";
    if (o is string) //执行第一次类型兼容性检查
    {
        string s = (string)o; //执行第二次类型兼容性检查,并转换
        MessageBox.Show("转换成功!");
    }
    else
    {
        MessageBox.Show("转换失败!");
    }


as转换规则:

1.检查对象类型的兼容性,并返回转换结果,如果不兼容则返回null;
2.不会抛出异常;
3.如果结果判断为空,则强制执行类型转换将抛出NullReferenceException异常;

示例:

    object o = "abc";
    string s = o as string; //执行第一次类型兼容性检查,并返回结果
    if (s != null) 
        MessageBox.Show("转换成功!");
    else
        MessageBox.Show("转换失败!");


注:as比is少执行一次兼容性检查,性能可能会高一点点。
分享到:
评论

相关推荐

    as和is的用法

    c#中as和is的用法

    C#中AS和IS关键字的用法

    主要介绍了C#中AS和IS关键字的用法的相关资料,需要的朋友可以参考下

    C#中is和as用法实例分析

    主要介绍了C#中is和as用法实例分析,需要的朋友可以参考下

    C#中is与as的区别分析

    主要介绍了C#中is与as的区别,较为详细的分析了is与as的原理与特性及用法区别,具有很好的学习借鉴价值,需要的朋友可以参考下

    c# 类型转换

    CLR允许将一个对象转换为它的实际类型,或者它的基类型。... c#中is as的操作符用法 在c#语言中,进行类型转换的另一个方式是使用is as操作符。 is:检查对象是否兼容指定对象,返回bool类型。 例: object o = new ob

    在一小时内学会 C#(txt版本)

    C# 中所有内容都打包在类中,而所有的类又打包在命名空间中(正如文件存与文件夹中)。和 C++ 一样,有一个主函数作为你程序的入口点。C++ 的主函数名为 main,而 C# 中是大写 M 打头的 Main。 类块或结构定义之后...

    C# 使用方法 入门教程

    6.1.2 在C#中使用委托..... 155 6.2 匿名方法...... 158 6.2.1 简单的委托示例..... 159 6.2.2 BubbleSorter示例..... 161 6.2.3 多播委托..... 164 6.3 事件...... 166 6.3.1 从客户的角度讨论事件..... 167 6.3.2 ...

    用C#编写的汇编集成环境

    在程序设计中使用的是C#的winform编程模式,通过对C#控件的利用,以及对windows API函数的调用,最终完成本设计。 关键词:控制台输入输出重定向,汇编集成环境,C# The Development of Assembler...

    C#5.0本质论第四版(因文件较大传的是百度网盘地址)

    11.5.1 在C# 4.0中使用out类型参数修饰符允许协变性 331 11.5.2 在C# 4.0中使用in类型参数修饰符允许逆变性 332 11.5.3 数组对不安全协变性的支持 335 11.6 泛型的内部机制 335 11.6.1 基于值...

    C#开发实例大全(基础卷).软件开发技术联盟(带详细书签) PDF 下载

    全书分6篇共25章,主要内容有C#开发环境的使用、C#语言基础应用、字符串处理技术、数组和集合的使用、面向对象编程技术、数据结构与算法、Windows窗体基础、特色窗体界面、窗体控制技术、MDI窗体和继承窗体、Windows...

    CLR.via.C#.(中文第3版)(自制详细书签)Part2

    4.2.1 使用C#的is和as操作符来转型 4.3 命名空间和程序集 4.4 运行时的相互联系 第5章 基元类型、引用类型和值类型 5.1 编程语言的基元类型 5.1.1 checked和unchecked基元类型操作 5.2 引用类型和值类型 5.3...

    C#中委托用法实例详解

    本文实例讲述了C#中委托用法。分享给大家供大家参考。具体分析如下: 这里演示了如何使用匿名委托来计算员工的薪水奖金。使用匿名委托简化了程序,因为无需再定义一个单独的方法。 (-:The data for each employee is...

    C#与.NET技术平台实战演练.part1

    4-2虚拟方法与改写方法的守则11-5隐藏基础类方法11-6使用sealed类与sealed方法11-7版本控制11-8使用接口接口的特点11-9 以明确的方式实现接口11-10 抽象类11-10-1 抽象方法11-10-2 不实现接口的抽象类11-11 ...

    C#全能速查宝典

    分别介绍了C#语言基础、Windows窗体及常用控件、Windows高级控件、控件公共属性、方法及事件、数据库开发、文件、数据流与注册表、GDI+绘图技术和C#高级编程,共包含562个C#编程中常用的属性、方法、类和各种技术,...

    轻松学C#(图解版)

    7.3.2 使用方法 121 7.3.3 派生类直接访问基类成员——base 122 7.3.4 继承中的构造函数 123 7.4 多态 124 7.5 抽象 128 7.5.1 抽象类、抽象方法的声明 129 7.5.2 抽象类的使用 129 7.5.3 抽象方法的使用 130 7.6 ...

    c#数据库操作的3种典型用法

    namespace DatabaseOperate { class SqlOperateInfo { //Suppose your ServerName is "aa",DatabaseName is "bb",UserName is "cc", Password is "dd" private string ...

    C#本质论(第3版)

    6.5 使用is运算符验证基础类型 6,6使用as运算符进行转换 6.7 小结 第7章 接口 7.1 接口概述 7.2 通过接口来实现多态性 7.3 接口实现 7.3.1 显式成员实现 7.3.2 隐式成员实现 7.3.3 显式接口实现与隐式接口...

Global site tag (gtag.js) - Google Analytics