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. bfs两种记录路径方法

    #include<cstdio> #include<queue> using namespace std; struct sss { int x,y; }ans[][]; ][ ...

  2. My SQL随记 002 登陆

    如何启动MySQL服务 Step1 我的电脑右键属性找到 控制面板 选择 系统和安全 Step2 管理工具中找到服务 Step3 找到你的MySQL启动服务 如何通过黑窗口登陆退出 MySQL Ste ...

  3. 编译QFileSystemModel

    QT在windows系统下可以直接安装,但有些时候,可以只编译一个类,这里需要有一些需要注意的.下面是github路径:https://github.com/1171597779/compile_of ...

  4. 初始Java

  5. SIMTRACE环境搭建

    搭建simtrace环境 工具环境搭建 仅作参考,具有时效性,请以官方文档为准. 跨平台编译工具arm-elf 参考链接:https://osmocom.org/projects/baseband/w ...

  6. git不添加.idea等IDE配置文件夹

    git不添加.idea等IDE配置文件夹由于.idea(intellJ,pycharm)的IDE文件夹很常出现,建议将gitignore设置为全局. git config --global core. ...

  7. wpf UI 布局

    1.Grid *号代表百分比,也可以使用固定值,需要预先设置 有几行几列 以及宽度和高度 ,在表格中的控件需要 表明自己所在第几行 第几列 2.StackPanel 重点需要设置 排列方向 水平还是垂 ...

  8. Hbuilder护眼主题分享

    sublime还有webstorm有很多主题,但是Hbuilder就相对较少,或者直接说基本没什么主题,在网上搜索了很久也很少有Hbuilder的主题分享,于是就自己取色调了一个仿的护眼主题来分享一下 ...

  9. 6.移动端App安装包的测试用例

    安装 安装手册是否规范,是否简洁,是否通俗易懂. 安装手册是否齐全,正确,有改动时,文档是否同步更新 直接复制安装程序到电脑上,能否正常安装 按安装手册给出的步骤进行安装,安装是否正确 查看在安装过程 ...

  10. React-Native新列表组件FlatList和SectionList学习 | | 联动列表实现

    React-Native在0.43推出了两款新的列表组件:FlatList(高性能的简单列表组件)和SectionList(高性能的分组列表组件). 从官方上它们都支持常用的以下功能: 完全跨平台. ...