is,as,类库
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,类库的更多相关文章
- .NET Core 系列5 :使用 Nuget打包类库
NuGet是个开源项目,项目包括 NuGet VS插件/NuGet Explorer/NuGetServer/NuGet命令行等项目,.NET Core项目完全使用Nuget 管理组件之间的依赖关系, ...
- Xamarin+Prism开发详解一:PCL跨平台类库与Profile的关系
在[Xamarin+Prism小试牛刀:定制跨平台Outlook邮箱应用]中提到过以下错误,不知道大伙还记得不: 无法安装程序包"Microsoft.Identity.Client 1.0. ...
- C#创建dll类库
类库让我们的代码可复用,我们只需要在类库中声明变量一次,就能在接下来的过程中无数次地使用,而无需在每次使用前都要声明它.这样一来,就节省了我们的内存空间.而想要在类库添加什么类,还需取决于类库要实现哪 ...
- .Net Core上用于代替System.Drawing的类库
目前.Net Core上没有System.Drawing这个类库,想要在.Net Core上处理图片得另辟蹊径. 微软给出了将来取代System.Drawing的方案,偏向于使用一个单独的服务端进行各 ...
- 拥抱.NET Core,如何开发一个跨平台类库 (1)
在此前的文章中详细介绍了使用.NET Core的基本知识,如果还没有看,可以先去了解“拥抱.NET Core,学习.NET Core的基础知识补遗”,以便接下来的阅读. 在本文将介绍如何配置类库项目支 ...
- CacheManager:–个通用缓存接口抽象类库
CacheManager是–个缓存通用接口抽象类库,它支持各种高速缓存提供者,例如Memcache,Redis,并且有许多先进的功能特性.具体可以访问官方网站 http://cachemanager ...
- Atitit java onvif 开源类库 getProfiles getStreamUri
Atitit java onvif 开源类库 getProfiles getStreamUri 1. ONVIF Java Library by Milgo1 1.1. https://github. ...
- Atitit 图像处理类库大总结attilax qc20
Atitit 图像处理类库大总结attilax qc20 1.1. 选择与组合不同的图像处理类库1 1.2. Halcon 貌似商业工具,功能强大.1 1.3. Openvc Openvc功能也是比 ...
- scikit-learn Adaboost类库使用小结
在集成学习之Adaboost算法原理小结中,我们对Adaboost的算法原理做了一个总结.这里我们就从实用的角度对scikit-learn中Adaboost类库的使用做一个小结,重点对调参的注意事项做 ...
- [.Net] 手把手带你将自己打造的类库丢到 NuGet 上
手把手带你将自己打造的类库丢到 NuGet 上 序 我们习惯了对项目右键点击“引用”,选择“管理NuGet 程序包”来下载第三方的类库,可曾想过有一天将自己的打造的类库放到 NuGet 上,让第三者下 ...
随机推荐
- BootCamp 在MacBook 上安装Win10
首先到网上下载win10的ISO光盘, 制作win10安装盘时,一直停在copy文件.最后文件还是没有copy完整. 需要手工把iso里的文件拷贝到U盘里. 否则提示source\install.wi ...
- docker 常用命令(一)
1.docker安装 centos1611(7.3)在线安装: # 安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的yu ...
- angualr Material Icons
首先需要项目引入 angualr meterial icons的资源库 图标资源链接 https://klarsys.github.io/angular-material-icons/ <md- ...
- vue 创建项目
先安装node.js环境 #先安装npm 阿里镜像 (之后cnpm 下载组件快速) npm install -g cnpm --registry=https://registry.npm.taobao ...
- 读入一个字符串str,输出字符串str中连续最长的数字串
要求: 读入一个长度不超过256的字符串,例如“abc123defg123456789hjfs123456”.要求输出“123456789” 思路: 遍历字符串,如果是数字串则计算往后一共有多少个数字 ...
- 18-11-01 pandas 学习03
[python]pandas display选项 import pandas as pd 1.pd.set_option('expand_frame_repr', False) True就是可以换行显 ...
- java面向对象编程(四)--类变量、类方法
1.什么是类变量? 类变量是该类的所有对象共享的变量,任何一个该类的对象去访问它时,取到的都是相同的值,同样任何一个该类的对象去修改它时,修改的也是同一个变量. 如何定义类变量? 定义语法: ...
- iOS 弹幕制作
离职的最后一天,在公司学习下弹幕的制作.基于OC. 主要思路: 1.首先建一个弹幕类BulletView,基于UIView,然后在该类上写个UIlabel,用于放置弹幕文字,然后前端放置一个UIIma ...
- ChIP-seq motif ROC 相关资料
[怪毛匠子]独家整理 不可以转载 MEME工具 http://meme-suite.org DNA motif 搜索算法总结 http://www.bbioo.com/lifesciences/40- ...
- 2018.4.25 github创建新项目
echo "# IntegrateDemo" >> README.md git init git add README.md git commit -m "f ...