• C# as与is的用法


    1. 类型转换
      • 任何类型都可以转换为其基类类型,用隐式转换完成;
      • 任何类型转换为其派生类型时,必须进行显示转换。如:(类型名)对象名;
      • 使用GetType可以取得任何对象的精确类型;
      • 基本类型可以使用Convert类实现类型转换;
      • 除了string以外的其他类型都有Parse方法,用于将字符串类型转换成对应的基本类型;
      • 值类型和引用类型的转换称为装箱(boxing)或拆箱(unboxing);
    2. as/is示例
      • is转换规则:
        • 检查对象类型的兼容性,并返回结果true(false);
        • 不会抛出异常;
        • 如果对象为null,刚返回false;
          示例:
          复制代码
           1 object o = "abc";  
           2 if (o is string) //执行第一次类型兼容性检查  
           3 {  
           4     string s = (string)o; //执行第二次类型兼容性检查,并转换  
           5     MessageBox.Show("转换成功!");  
           6 }  
           7 else  
           8 {  
           9     MessageBox.Show("转换失败!");  
          10 }  
          复制代码
      • as转换规则:
        • 检查对象类型的兼容性,并返回转换结果,如果不兼容则返回null; 
        • 不会抛出异常;
        • 如果结果判断为空,则强制执行类型转换将抛出NullReferenceException异常; 示例:
          复制代码
          1 object o = "abc";  
          2 string s = o as string; //执行第一次类型兼容性检查,并返回结果  
          3 if (s != null)   
          4     MessageBox.Show("转换成功!");  
          5 else  
          6     MessageBox.Show("转换失败!");  
          复制代码

          as比is少执行一次兼容性检查,性能可能会高一点点。

  • 相关阅读:
    [IDEA]高级用法
    [TongEsb]Windows入门教程
    [MAC] JDK版本切换
    [下划线]换行自适应稿纸完美方案
    [IDEA] Jrebel热部署环境搭建Mac
    Python规范:用用assert
    Python规范:提高可读性
    Python规范:代码规范要注意
    计算机网络自顶向下方法--计算机网络中的安全.2
    Python进阶:程序界的垃圾分类回收
  • 原文地址:https://www.cnblogs.com/ljdong7/p/12117923.html
Copyright © 2020-2023  润新知