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. 八大排序算法——冒泡排序(动图演示 思路分析 实例代码java 复杂度分析)

    一.动图演示 二.思路分析 1.  相邻两个数两两相比,n[i]跟n[j+1]比,如果n[i]>n[j+1],则将连个数进行交换, 2.  j++, 重复以上步骤,第一趟结束后,最大数就会被确定 ...

  2. shell脚本结构

    echo $? 代表上一次命令的状态返回值,‘0’则代表为真<执行成功>,‘非零’则代表为假<执行失败>. shell脚本: <判断老男孩的年纪> [root@bo ...

  3. request.getRealPath的替代方法

    在写上传小练习的时候,发现获得路径的request.getRealPath("")已经被画上线了,也就是不再建议使用. package controller; import jav ...

  4. SqlServer查找字段中带空值的项

    select * from  lianxia where sex is null

  5. Linux下如何查看tomcat是否安装、启动、文件路径、进程ID

    Linux下如何查看tomcat是否安装.启动.文件路径.进程ID 在Linux系统下,Tomcat使用命令的操作! 检测是否有安装了Tomcat: rpm -qa|grep tomcat 查看Tom ...

  6. [HAOI2007]反素数

    这道题其实就是求在 [1,n] 的区间内,那个数的约数个数最多,如果同样多,取最小... 那么我们只需要把质因数分解反过来做,然后更新答案就好了... 素数不需要筛出来,直接打表就好,因为只能用到几个 ...

  7. Core 配置文件Json

    appsettings.json 文件属性 -复制到输出目录-始终复制.

  8. C++ File Binary

    论操作非文本文件时,std::ios::binary的重要性 今天在读取图片文件的时候,根据图片数据的高宽对图片数据进行读取,但是出现了图片数据读取不完整,但是文件已经到达末尾的情况,中间想过read ...

  9. 获取当前时间并格式化,CTime类

    CTime类,此类应该不是C++标准类库,属于windows封装的关于时间的类库,使用环境应该为 Win32程序,MFC程序,VC++程序 CTime tm = CTime::GetCurrentTi ...

  10. 基于TCP的安卓客户端开发

    一.Socket通信简介 Android与服务器的通信方式主要有两种,一是Http通信,一是Socket通信.两者的最大差异在于,http连接使用的是“请求—响应方式”,即在请求时建立连接通道,当客户 ...