is和as运算符:
所有类型的基类
object类型 - 基类:所有类型的基类,就类似是整个生物圈的生物类,是个大的概念
object o1 = new Random(); //object可以承载Random随机数类型
object o2 = new aaa(); //object可以承载新建的类aaa
object o3 = ""; //object可以承载字符串类
object o4 = ; //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[].ToString();
Console.WriteLine(s); //不知道数据类型时,可以用string转换
string ss = arr[].ToString();
Console.WriteLine(ss); //这样也可以转换,只是打印出的是它的数据类型
string sss = arr[].ToString();
Console.WriteLine(sss); //Random r = (Random)arr[0]; //意思是:把索引值是0的转换成随机数类型,然后赋值到随机数类型"r",也是转换类型的一种方法
//r.Next(0,3); 这时的系统崩溃,无法转换 bool b = arr[] 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(,)); // 可以直接打印出来
}
} ----------------------------------------------------------------------------- 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(,)); //这样就可以直接调用了
}
} ----------------------------------------------------------------------------------- 类库:(带小齿轮的辅助程序,加密用的乱码)dll namespace 类库
{
class Program
{
static void Main(string[] args)
{
//新写一个加减的类,然后在文件中找到加减这个类,放到桌面上,引用的时候,在类库这个文件这,右键粘贴即可,注意命名空间记得引用出来 JiaJian c = new JiaJian();
Console.WriteLine(c.jiafa(, )); //这样就能打出来了 //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,类库的更多相关文章

  1. .NET Core 系列5 :使用 Nuget打包类库

    NuGet是个开源项目,项目包括 NuGet VS插件/NuGet Explorer/NuGetServer/NuGet命令行等项目,.NET Core项目完全使用Nuget 管理组件之间的依赖关系, ...

  2. Xamarin+Prism开发详解一:PCL跨平台类库与Profile的关系

    在[Xamarin+Prism小试牛刀:定制跨平台Outlook邮箱应用]中提到过以下错误,不知道大伙还记得不: 无法安装程序包"Microsoft.Identity.Client 1.0. ...

  3. C#创建dll类库

    类库让我们的代码可复用,我们只需要在类库中声明变量一次,就能在接下来的过程中无数次地使用,而无需在每次使用前都要声明它.这样一来,就节省了我们的内存空间.而想要在类库添加什么类,还需取决于类库要实现哪 ...

  4. .Net Core上用于代替System.Drawing的类库

    目前.Net Core上没有System.Drawing这个类库,想要在.Net Core上处理图片得另辟蹊径. 微软给出了将来取代System.Drawing的方案,偏向于使用一个单独的服务端进行各 ...

  5. 拥抱.NET Core,如何开发一个跨平台类库 (1)

    在此前的文章中详细介绍了使用.NET Core的基本知识,如果还没有看,可以先去了解“拥抱.NET Core,学习.NET Core的基础知识补遗”,以便接下来的阅读. 在本文将介绍如何配置类库项目支 ...

  6. CacheManager:–个通用缓存接口抽象类库

    CacheManager是–个缓存通用接口抽象类库,它支持各种高速缓存提供者,例如Memcache,Redis,并且有许多先进的功能特性.具体可以访问官方网站  http://cachemanager ...

  7. Atitit java onvif 开源类库 getProfiles getStreamUri

    Atitit java onvif 开源类库 getProfiles getStreamUri 1. ONVIF Java Library by Milgo1 1.1. https://github. ...

  8. Atitit 图像处理类库大总结attilax qc20

    Atitit 图像处理类库大总结attilax qc20 1.1. 选择与组合不同的图像处理类库1 1.2. Halcon 貌似商业工具,功能强大.1 1.3. Openvc  Openvc功能也是比 ...

  9. scikit-learn Adaboost类库使用小结

    在集成学习之Adaboost算法原理小结中,我们对Adaboost的算法原理做了一个总结.这里我们就从实用的角度对scikit-learn中Adaboost类库的使用做一个小结,重点对调参的注意事项做 ...

  10. [.Net] 手把手带你将自己打造的类库丢到 NuGet 上

    手把手带你将自己打造的类库丢到 NuGet 上 序 我们习惯了对项目右键点击“引用”,选择“管理NuGet 程序包”来下载第三方的类库,可曾想过有一天将自己的打造的类库放到 NuGet 上,让第三者下 ...

随机推荐

  1. Oracle判断周末

    有些业务场景下会有择出周末的需求,具体判断语句如下: 1.SELECT TO_CHAR(TO_DATE(DATA_DATE,'YYYY-MM-DD),'D') FROM DUAL; 如果DATA_DA ...

  2. BPM如何选型?

    Gartner 对BPM 的定义是:BPM 是一个描述一组服务和工具的一般名词,这些服务和工具为显式的流程管理(如流程的分析.定义.执行.监视和管理)提供支持. 不是所有的BPM 产品都能包括BPM ...

  3. python xml文件解析

    参考链接:http://www.runoob.com/python/python-xml.html

  4. main 团队项目厨娘:用例图、类图、时序图

    团队:main 项目:厨娘 个人用例图

  5. PLSQL Developer连接Oracle

    1.安装PLSQL Developer Oracle数据库和PL/SQL Developer的安装步骤,这里就不做叙述了,百度安装方法的时候有说在安装PL/SQL Developer软件时,不要安装在 ...

  6. 如何在QFileSystemModel中显示文件夹的大小

    在Qt里面,有一种Model/View框架,Model负责收集信息,View负责显示信息.QFileSystemModel可以读取文件大小,但是默认情况下不能读取文件夹大小. QFileSystemM ...

  7. Vxlan基础理解

    一 . 为什么需要Vxlan   1. vlan的数量限制    4096个vlan远不能满足大规模云计算数据中心的需求   2. 物理网络基础设施的限制    基于IP子网的区域划分限制了需要二层网 ...

  8. Power BI Desktop 新年快乐!

    新年快乐 2018年是Power BI 多产的一年!更新发布的功能就超过150多个,真是相当的强大! 为了庆祝这一成功的一年,Power BI官方团队制作了一个有趣的视频,展示他们对2018年最喜欢的 ...

  9. ubuntu16.04x下搜狗输入法无法输入中文

    使用如下命令: cd ~/,config find . -name sogou* 找到sogou-qimpanel ,sudo rm -r ./sogou-qimpanel删除 find . -nam ...

  10. Python学习之路基础篇--02Python基础+小作业

    1 变量 变量就是将一些运算的中间结果暂存到内存中,以便后续代码调用.必须由数字,字母,下划线任意组合,且不能数字开头.不能是python中的关键字,如['and', 'as', 'assert', ...