首页 > 代码库 > is,as,类库
is,as,类库
is和as运算符: 所有类型的基类 object类型 - 基类:所有类型的基类,就类似是整个生物圈的生物类,是个大的概念 object o1 = new Random(); //object可以承载Random随机数类型 object o2 = new aaa(); //object可以承载新建的类aaa object o3 = ""; //object可以承载字符串类 object o4 = 11; //object可以承载数字类 //没有引用的类型,可以右键解析出来 ArrayList arr = new ArrayList(); //这个集合里可以放任意类型 arr.Add("呵呵"); arr.Add(12.5); arr.Add(new Random()); //一个对象实例化的过程,实际上是new实行一遍构造函数的过程, //ArrayList arr = new ArrayList();实际就是一个对象放到一个变量里面去 //现在是省略一步,没有放到变量里去,直接扔到集合里去 arr.Add(new aaa ()); //新建的类也可以加上 //string s = arr[0];这个时候不能进行转换。 //子类string可以转换成父类object //父类无法转换成子类 //正确方式是: string s = arr[0].ToString(); Console.WriteLine(s); //不知道数据类型时,可以用string转换 string ss = arr[1].ToString(); Console.WriteLine(ss); //这样也可以转换,只是打印出的是它的数据类型 string sss = arr[2].ToString(); Console.WriteLine(sss); //Random r = (Random)arr[0]; //意思是:把索引值是0的转换成随机数类型,然后赋值到随机数类型"r",也是转换类型的一种方法 //r.Next(0,3); 这时的系统崩溃,无法转换 bool b = arr[0] is Random; //返回的是布尔类型 Console.WriteLine(b); ---------------------------------------------------------------------------- is是判断某个对象是否是某个类型 对象 is 类型 返回 bool类型 //在不知道哪个是随机数的情况下: foreach (object o in arr) { //里面都是object类型 if(o is Random == true){ //o is Random == true ,判断"o"是不是随机数类型,true可以不写,默认是true,把错误的都屏蔽掉 Random r = (Random)o; //如果是的话,把“0”转换成随机数类型,赋值给r Console.WriteLine(r.Next(0,3)); // 可以直接打印出来 } } ----------------------------------------------------------------------------- as是将某个对象转换成某个类型 对象 as 类型 如果转换成功返回对象类型 如果转换失败,也不会报错,而是返回null值 //方法二: foreach (object o in arr) { Random r = o as Random; //数据类型转换的过程 //r.Next(0,10); 这时会报错,未将对象引用设置到对象的实例,"r"值是空的null,说明没有被实例化,没有被实例化的原因是,"o"对象变不成Random类型,类型转换不过来 //尽量使用as形式的,因为转换不成不会报错,只会返回空值 //这里可以进行判断 if(r != null){ Console.WriteLine(r.Next(0,10)); //这样就可以直接调用了 } } ----------------------------------------------------------------------------------- 类库:(带小齿轮的辅助程序,加密用的乱码)dll namespace 类库 { class Program { static void Main(string[] args) { //新写一个加减的类,然后在文件中找到加减这个类,放到桌面上,引用的时候,在类库这个文件这,右键粘贴即可,注意命名空间记得引用出来 JiaJian c = new JiaJian(); Console.WriteLine(c.jiafa(10, 2)); //这样就能打出来了 //f12 可以查看定义,也就是加密版 Console.ReadLine(); } } } class JiaJian { public int jiafa(int a, int b) { return a + b; } public int jianfa(int a, int b) { return a - b; } //然后点击输出,找到bin文件找到.dll文件,复制粘贴,然后再点生成,再点类库下的引用,浏览添加,确定之后再点生成,然后引用命名空间,然后在program里 JiaJian c = new JiaJian(); JiaJian是class类名 } }
is,as,类库
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。