is和as运算符

is 是判断某个对象是否是某个类型     对象 is 类型    返回 bool  类型

as是将某个对象转换成某个类型

  对象 as 类型

  如果转换成功返回对象类型

  如果装换不成功,也不会报错,而是返回null值

 

所有类型的基类——object         任何子类都可以隐式转换父类

 

object o1 = new Random();      

objiect 02= "";                      可以等于数字型  字符串型等等

 

ArrayList arr = new ArrayList();    可以放任何类型且不限定长度

arr.Add("aaa");

arr.Add(55);

arr.Add(new Random());

arr.Add(new aaa());

 

Random r = (Random)arr[0];        强制转换    声明将括号后的内容转换成括号内的数据类型

 

知道什么类型:

string s =arr[0].Tstring();    子类能隐式转换陈父类      父类不能换成子类  加tsting强制装换成子类

不知道什么类型:

bool b = arr[0] is Random;        arr内索引值0所对应的内容是不是随机数  是TRUE 不是FALSE

不知道有多少数据也不知道那个是我用的随机数

foreach (objiect o in arr)          吧arr的内容遍历出来

{

  if (o is Random == true)      如果o里是随机类型显示true

  {

    RanDom r = (Random)o;    

    r.Next (0,11);

  }

}

 

foreach (objiect o in arr)          把arr的内容遍历出来

{

   Random r = o as Random;         类型装换的过程  如果转换不成功显示null

  if(r != null)                               转换成功就用  不成功就过

    {

      Console.WriteLine(r.Next(0,11));         

    }

}

原文地址:https://www.cnblogs.com/wcl2017/p/7107095.html