类库:

说白了,就是让别人调用你写的方法,并且不让别人看到你是怎么实现的。

如果有功能你不会做,需要别人帮忙,那么你的同事可以帮你写好一个类,然后你来调用这个类中的方法,完成你的项目。

1、C#源代码文件,包括在自己的项目中

2、类库,.dll

优点:你写的方法别人看不到实现过程,保密性强

缺点:如果你写的方法有错误,别人无法更改

---------------------------------------------------------
委托:
可以理解为 函数的指针

delegate - 定义关键词

//声明委托类型
public delegate int FirstDel(int aaa, int bbb);

//创建委托变量,赋值,函数指向
FirstDel f1 = new JiaJian().Jia;

int c = f1(10, 20);

-----------------------------------------------------------

var:万能类型

object:所有类型的基类

as:类型转换,如果转换不成功,不会报错,而是返回一个null

is:判断某个变量/对象,是不是某一种类型,返回bool值

泛型集合: List<T>

不固定长度,固定类型的一种集合

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using 加减法;//引用所需要的类,然后再进行实例化
  7. using ClassLibrary1;
  8.  
  9. namespace 类库_委托_is_as运算符_泛型集合
  10. {
  11. class Program
  12. {
  13. //委托,关键词delegate
  14. //声明委托类型
  15. public delegate int FirstDel(int a1, int b1);
  16.  
  17. public void a2(FirstDel f, int a)
  18. {
  19. }
  20.  
  21. static void Main(string[] args)
  22. {
  23. int one = ;
  24. int two = ;
  25. //写一个加减运算方法,可以另外写一个项目和类,在该项目中进行引用即可
  26.  
  27. //右键项目,选择倒数第二个文件资源管理器,把需要添加的类复制粘贴到需要的项目中,
  28. //或者可以点击解决方案中的显示所有文件,续重需要添加的类,单击即可
  29.  
  30. //实例化,一定要先引用所需要的那个类
  31. //使用方式一:普通方式
  32. jiajian j = new jiajian();
  33. int c = j.jia(one, two);
  34. Console.WriteLine(c);
  35.  
  36. //使用方式二:匿名对象使用方式,可以简化代码
  37. int h = new jiajian().jia(, );
  38. Console.WriteLine(h);
  39.  
  40. //一、类库的使用,先引用
  41.  
  42. //右键项目,选择倒数第二个文件资源管理器,bin文件夹,debug文件夹,后缀为.dll的文件就是类库,
  43. //复制到需要的项目文件夹中的bin文件夹,中的debug文件夹。
  44. //用记事本打开的话,现实的是乱码,因为被编译加密了。
  45.  
  46. int d = new chengchu().chengfa(one, two);
  47. Console.WriteLine(d);
  48.  
  49. //二、委托,函数的指针
  50. //创建委托变量,赋值,函数指向
  51. //委托没有办法被实例化,可一直想一个函数,但结构必须一样
  52. FirstDel f1 = new jiajian().jia;//定义了一个FirstDel f1这样一个委托变量,把jia这个方法指向到f1身上
  53. int g = f1(, );//被指向后f1就代表这个方法,并可以使用
  54. Console.WriteLine(g);
  55.  
  56. new Program().a2(f1, );
  57.  
  58. //三、知识点补充
  59. //1、is和as运算符
  60. object ob = new jiajian();//单独拿出ob不知道其类型,但需要转换成相应类型使用,
  61. //chengchu cc = (chengchu)ob;//以前都是用强转,语法上不报错。但运行时报错
  62. if (ob is chengchu)//is的意思是判断一下某个变量或对象是不是某一种类型,返回的是bool类型(true或false)
  63. {
  64. chengchu cc = ob as chengchu;//用as这样写如果装换不成功,程序运行时不会报错,
  65. //返回的是null(其他的int,string等类型都是正常转换)
  66. }
  67.  
  68. //2、泛型集合 List<T> :List是集合 T表示是任意类型
  69. //不固定长度,但是固定类型的一种集合
  70.  
  71. List<chengchu> list = new List<chengchu>();//这样写,list集合里面只能放chengchu类型,
  72. //放其他类型报错,取出来的也不用类型转换,都是chengchu类型
  73.  
  74. Console.ReadLine();
  75. }
  76. }
  77. }

面向对象思维导图整理

类库、委托、is as运算符、泛型集合的更多相关文章

  1. C#基础精华03(常用类库StringBuilder,List<T>泛型集合,Dictionary<K , V> 键值对集合,装箱拆箱)

    常用类库StringBuilder StringBuilder高效的字符串操作 当大量进行字符串操作的时候,比如,很多次的字符串的拼接操作. String 对象是不可变的. 每次使用 System. ...

  2. 2016年11月27日--面向对象:多态、类库、委托、is和as运算符、泛型集合

    1.虚方法 virtual 重写 override 父类中的方法,在子类中并不适用,那么子类需要自主更改继承的方法或者是属性,那父类中加了virtual关键字的方法才可以被子类重写,子类重写父类的方法 ...

  3. C#—类库、委托、is和as运算符、泛型集合

    类库 类库(Class Library)是一个综合性的面向对象的可重用类型集合,这些类型包括:接口.抽象类和具体类.类库可以解决一系列常见编程任务(包括诸如字符串管理.数据收集.数据库连接以及文件访问 ...

  4. 多态、类库、委托、is和as运算符、泛型集合

    多态:简而言之就是龙生九子,各有不同 有了继承,才有了多态 1.虚方法 virtual 重写 override 父类中的方法,在子类中并不适用,那么子类需要自主更改继承的方法或者是属性,那父类中加了v ...

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

    类库:其实就是一堆类文件,只不过用户看不到这些类的源代码,保密性好. 优点:保密性好缺点:如果这个方法不好用,使用者无法自己去更改它. 类文件是.cs    类库是.dll 新建项目为类库,在debu ...

  6. 多态,虚拟方法,重写,接口,类库,委托,is,as运算符,泛型集合,万能变量

    多态:简而言之就是龙生九子,各有不同 有了继承,才有了多态 1.虚方法 virtual重写 override父类中的方法,在子类中并不适用,那么子类需要自主更改继承的方法或者是属性,那父类中加了vir ...

  7. 面向对象--类库、委托、is和as运算符、泛型集合

    类库: 其实就是一堆类文件,只是看不到这些类的源代码,保密性好. 优点:保密性好 缺点:如果这个方法不好用,使用者无法自己去更改它. 给的大多是dll文件.使用方法:引用右键,添加引用,浏览,选择到相 ...

  8. 类库,委托,as.is,var,泛型集合

    类库: 就是让别人调用你写的方法,并且不让别人看到你是怎么实现的.(比如说一些核心文件) 如果有功能你不会做,需要别人帮忙,那么你的同事可以帮你写好一个类,然后你来调用这个类中的方法,完成你的项目. ...

  9. 面向对象——is和as运算符、泛型集合 List<T>

    二:is和as运算符: (1) is运算符 is 运算符用于检查对象是否与给定类型兼容.如果兼容返回true,否则返回false; 一般用于查看某个类是否实现了某个接口,或者是不是某个类的子类; 例如 ...

随机推荐

  1. Web3D编程入门总结——WebGL与Three.js基础介绍

    /*在这里对这段时间学习的3D编程知识做个总结,以备再次出发.计划分成“webgl与three.js基础介绍”.“面向对象的基础3D场景框架编写”.“模型导入与简单3D游戏编写”三个部分,其他零散知识 ...

  2. 安装django

    我已经有Python3.5的环境了.我们去下载Django.https://github.com/django/django.git  直接下载为zip解压即可. 然后在命令提示符下安装 1.  切换 ...

  3. The type XXX cannot be resolved. It is indirectly referenced from required .class files错误.....

    遇到The type XXX cannot be resolved. It is indirectly referenced from required .class files错误.....,查找的 ...

  4. Python的文本数据

    字符串的一些方法! 1.text.endswith(".jpg")        如果字符串是以给定子字符串结尾的,就返回值True. 2. text.upper():       ...

  5. generated clock

    内部时钟的定义: create_generated_clock,通过-source,-edges,-divide_by,-multiply_by来执行clock沿. create_generated_ ...

  6. 摸索js的3d全景

    先我在网上找到了一个例子,http://silali.vicp.net/three/emaple.html 完美实现3d全景,在详细查看这个例子后,发现他在手机上运行并不流畅,而且显不全并会卡顿. 我 ...

  7. Eclipse中实现JAVA代码的自动提示功能

    1.打开Eclipse,在.出现时进行代码提示换成任意字母+.出现时的代码提示了(.abcdefghijklmnopqrstuvwxyz):

  8. Firefox刷新页面和复选框的奇葩问题

    Firefox刷新页面后数据还在,估计很多人都碰到过. 但是有一个奇怪的地方就是复选框,如果你默认是勾选了,然后访问者取消勾选,刷新完之后,还是没有勾选,这是为什么? Firefox奇葩的地方就在于c ...

  9. Android PullToRefresh (GridView 下拉刷新上拉加载)

    做这个需要自己去git hub上下载个pull-to-refresh 里面有个library为依赖包自己导到自己的项目中 (下载地址:https://github.com/chrisbanes/And ...

  10. [转]关于NSAutoreleasePool' is unavailable: not available in automatic reference counting mode的解决方法

    转载地址:http://blog.csdn.net/xbl1986/article/details/7216668 Xcode是Version 4.2 Build 4D151a 根据Objective ...