zoukankan      html  css  js  c++  java
  • C#中 is 和 as 的区别

    一, is 检查对象是否与给定的类型兼容

      @1 检查对象是否是一个实例,或者从父类那儿继承来的

           if(students is Person)

       {

             ...//code 

       }

          @2 is 运算符只考虑装箱,拆箱,以及引用转换;

          @3 在is运算符的左侧不允许使用匿名方法.(lambda表达式除外)

       ex: 

     View Code
     1             int a = 10;
     2             object obj = a;
     3             if(obj is int)
     4             {
     5                 Console.WriteLine("boxing...");
     6             }
     7             a = 20;
     8             Console.WriteLine("a={0}",a);
     9             Console.WriteLine("obj={0}",obj);
    10 
    11 
    12 //输出结果:
    13   boxing...
    14   a=20
    15   obj=10

    二. as 运算符用于执行可兼容类型之间的转换

      @1 as 运算符类似于类型转换,不同的是,as运算符转换失败了不会报错,而是返回一个null;

          @2 as 运算符只执行引用赚换和装箱转换.as 运算符无法执行用定义的转换;

    View Code
     1             object[] obj=new object[5];
     2             obj[0] = new MyClass();
     3             obj[1] = "hello";
     4             obj[2] = 123;
     5             obj[3] = null;
     6             obj[4] = 'a';
     7             for (int i = 0; i < obj.Length; i++)
     8             {
     9                 string s = obj[i] as string;
    10                 if(s!=null)
    11                 {
    12                     Console.WriteLine(s);
    13                 }
    14                 else
    15                 {
    16                     Console.WriteLine("not string ...");
    17                 }
    18             }
  • 相关阅读:
    iTestin云测试工具
    android 存储操作 大小显示换算 kb mb KB MB 读取
    android 发送短信 判断号码规则 判断字符数70
    android 震动 各种
    10.13总结
    10.8每日总结
    10.9
    10.15
    10.14
    10.12每日总结
  • 原文地址:https://www.cnblogs.com/ry123/p/2671304.html
Copyright © 2011-2022 走看看