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类名

    }
}
时间: 2024-11-06 23:28:10

is,as,类库的相关文章

Guava:好用的java类库 学习小记

基础功能 google guava中定义的String操作 在google guava中为字符串操作提供了很大的便利,有老牌的判断字符串是否为空字符串或者为null,用指定字符填充字符串,以及拆分合并字符串,字符串匹配的判断等等. 1. 使用com.google.common.base.Strings类的isNullOrEmpty(input)方法判断字符串是否为空 1 //Strings.isNullOrEmpty(input) demo 2 String input = ""; 3

类库,委托,is和as运算符,泛型集合

类库:其实就是一堆类文件,只不过用户看不到这些类的源代码,保密性好. 优点:保密性好缺点:如果这个方法不好用,使用者无法自己去更改它. 类文件是.cs    类库是.dll 新建项目为类库,在debug文件夹下找到dll文件 委托:委托可以理解为:函数的指针 关键词:delegate 声明委托类型:public delegate int FirstDel(int a, int b); FirstDel不是类,是委托变量,不能实例化(不能new), 创建委托变量:FirstDel 名字 = 与这个

Python 类库

Http 类库 Requests: HTTP for Humans >>> r = requests.get('https://api.github.com/user', auth=('user', 'pass')) >>> r.status_code200 >>> r.headers['content-type'] 'application/json; charset=utf8' >>> r.encoding'utf-8' >

android studio中导入第三方类库

http://zhidao.baidu.com/link?url=W0zaTJAdd4qiJ2PwIGK39bqjQ3-a8CxA-EZb1M9FQZGnPHMfxPzn0h1AoPED-ix7GiSgfDV0EGKtl_9TJXyqaje0BTCTuZ2VOLI8PSoI4nq 下面分两种情况介绍一下如何导入第三方类库. 1.对于jar的类库,非常简单,只要在项目根目录下新建一个libs目录,然后把jar复制进去,在jar上点击右键,选择Add as library,即可完成依赖的添加. 2.

JAVA平台开放图表绘制类库——JFreeChart

好的东西要分享要推荐,这里向大家推荐一个java平台下的一个开源图表绘制类库JFreeChart,相关资源(源代码.demo源码.开发指南)已经上传至CSDN资源,需要的可以自行下载. JFreeChart的图表绘制功能非常强大,涵盖了几乎所有想的到的图表,并且绘制效果还很炫酷.来看下JFreeChart的主要效果图: 之前都是用excel绘制的图表,还要调整很多属性之类的东西,觉得很麻烦,所以就全部模块化实现了,代码就不贴出来了. JFreeChart相关资源下载地址:http://downl

word相关转换类库

using System;using System.Collections.Generic;using System.Text;using Microsoft.Office.Interop.Word;using System.IO;using System.Web;using System.Data;using System.Reflection;using Microsoft.Win32;using System.Text.RegularExpressions;using System.Net

前端框架与前端类库的理解

前端框架的理解误区 网站的价值在于它能为用户提供什么价值,在于网站能做什么,而不在于它是怎么做的,所以在网站还很小的时候就去追求网站的架构框架是舍本逐末,得不偿失的.前端框架同理,如果是一个简单的页面型产品,应用只是依赖服务器来生成Web页面和视图,并且只需要使用一些简单的Javascript或者JQuery来使应用更加具有互动性,那么一个JQuery前端类库就可以了,真的没必要用上一些高大上的框架. 当然,框架的确是很有用的,重点是我们要知道什么时候该用什么框架.大公司大项目的经验和成功模式固

JDK源码简析--java.lang包中的基础类库

题记 JDK,Java Development Kit. 我们必须先认识到,JDK只是,仅仅是一套Java基础类库而已,是Sun公司开发的基础类库,仅此而已,JDK本身和我们自行书写总结的类库,从技术含量来说,还是在一个层级上,它们都是需要被编译成字节码,在JRE中运行的,JDK编译后的结果就是jre/lib下得rt.jar,我们学习使用它的目的是加深对Java的理解,提高我们的Java编码水平. 本系列所有文章基于的JDK版本都是1.7.16. 本节内容 在本节中,简析java.lang包所包

(Facebook开源项目)Fresco:一个新的Android图像处理类库

在Facebook的Android客户端上快速高效的显示图片是非常重要的.然而多年来,我们遇到了很多如何高效存储图片的问题.图片太大,而设备太小.一个像素点就占据了4个字节数据(分别代表R G B和alpha).如果在一个480*800尺寸的手机屏幕上,一张单独的全屏图片就会占据1.5MB的内存空间.通常手机的内存都非常小,而这些内存被多种多样的app划分占用.在一些设备上,Facebook app虽然只有16MB,但是仅仅一个图片就占用了1/10的空间. 当你的app用完你的内存时会发生什么呢

使用CocoaPods管理第三方开源类库

iOS开发中经常会用到许多第三方类库,比如AFNetworking.FMDB.JSONKit等等,使用CocoaPods这个工具就能很方便得对工程中用到的类库进行管理,包括自动下载配置以及更新. 首先需要下载安装CocoaPods,系统要求有ruby环境,至少OS X 10.9以后是自带ruby环境的(Python也自带了),使用"ruby -v"命令可以查看当前ruby版本. 配置过程如下: 1.ruby环境 不放心的话可以先确认下ruby环境,据说由于GFW的影响,大都把Ruby镜