类库、委托、is as运算符、泛型集合
类库:
说白了,就是让别人调用你写的方法,并且不让别人看到你是怎么实现的。
如果有功能你不会做,需要别人帮忙,那么你的同事可以帮你写好一个类,然后你来调用这个类中的方法,完成你的项目。
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>
不固定长度,固定类型的一种集合
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using 加减法;//引用所需要的类,然后再进行实例化
- using ClassLibrary1;
- namespace 类库_委托_is_as运算符_泛型集合
- {
- class Program
- {
- //委托,关键词delegate
- //声明委托类型
- public delegate int FirstDel(int a1, int b1);
- public void a2(FirstDel f, int a)
- {
- }
- static void Main(string[] args)
- {
- int one = ;
- int two = ;
- //写一个加减运算方法,可以另外写一个项目和类,在该项目中进行引用即可
- //右键项目,选择倒数第二个文件资源管理器,把需要添加的类复制粘贴到需要的项目中,
- //或者可以点击解决方案中的显示所有文件,续重需要添加的类,单击即可
- //实例化,一定要先引用所需要的那个类
- //使用方式一:普通方式
- jiajian j = new jiajian();
- int c = j.jia(one, two);
- Console.WriteLine(c);
- //使用方式二:匿名对象使用方式,可以简化代码
- int h = new jiajian().jia(, );
- Console.WriteLine(h);
- //一、类库的使用,先引用
- //右键项目,选择倒数第二个文件资源管理器,bin文件夹,debug文件夹,后缀为.dll的文件就是类库,
- //复制到需要的项目文件夹中的bin文件夹,中的debug文件夹。
- //用记事本打开的话,现实的是乱码,因为被编译加密了。
- int d = new chengchu().chengfa(one, two);
- Console.WriteLine(d);
- //二、委托,函数的指针
- //创建委托变量,赋值,函数指向
- //委托没有办法被实例化,可一直想一个函数,但结构必须一样
- FirstDel f1 = new jiajian().jia;//定义了一个FirstDel f1这样一个委托变量,把jia这个方法指向到f1身上
- int g = f1(, );//被指向后f1就代表这个方法,并可以使用
- Console.WriteLine(g);
- new Program().a2(f1, );
- //三、知识点补充
- //1、is和as运算符
- object ob = new jiajian();//单独拿出ob不知道其类型,但需要转换成相应类型使用,
- //chengchu cc = (chengchu)ob;//以前都是用强转,语法上不报错。但运行时报错
- if (ob is chengchu)//is的意思是判断一下某个变量或对象是不是某一种类型,返回的是bool类型(true或false)
- {
- chengchu cc = ob as chengchu;//用as这样写如果装换不成功,程序运行时不会报错,
- //返回的是null(其他的int,string等类型都是正常转换)
- }
- //2、泛型集合 List<T> :List是集合 T表示是任意类型
- //不固定长度,但是固定类型的一种集合
- List<chengchu> list = new List<chengchu>();//这样写,list集合里面只能放chengchu类型,
- //放其他类型报错,取出来的也不用类型转换,都是chengchu类型
- Console.ReadLine();
- }
- }
- }
面向对象思维导图整理
类库、委托、is as运算符、泛型集合的更多相关文章
- C#基础精华03(常用类库StringBuilder,List<T>泛型集合,Dictionary<K , V> 键值对集合,装箱拆箱)
常用类库StringBuilder StringBuilder高效的字符串操作 当大量进行字符串操作的时候,比如,很多次的字符串的拼接操作. String 对象是不可变的. 每次使用 System. ...
- 2016年11月27日--面向对象:多态、类库、委托、is和as运算符、泛型集合
1.虚方法 virtual 重写 override 父类中的方法,在子类中并不适用,那么子类需要自主更改继承的方法或者是属性,那父类中加了virtual关键字的方法才可以被子类重写,子类重写父类的方法 ...
- C#—类库、委托、is和as运算符、泛型集合
类库 类库(Class Library)是一个综合性的面向对象的可重用类型集合,这些类型包括:接口.抽象类和具体类.类库可以解决一系列常见编程任务(包括诸如字符串管理.数据收集.数据库连接以及文件访问 ...
- 多态、类库、委托、is和as运算符、泛型集合
多态:简而言之就是龙生九子,各有不同 有了继承,才有了多态 1.虚方法 virtual 重写 override 父类中的方法,在子类中并不适用,那么子类需要自主更改继承的方法或者是属性,那父类中加了v ...
- 类库,委托,is和as运算符,泛型集合
类库:其实就是一堆类文件,只不过用户看不到这些类的源代码,保密性好. 优点:保密性好缺点:如果这个方法不好用,使用者无法自己去更改它. 类文件是.cs 类库是.dll 新建项目为类库,在debu ...
- 多态,虚拟方法,重写,接口,类库,委托,is,as运算符,泛型集合,万能变量
多态:简而言之就是龙生九子,各有不同 有了继承,才有了多态 1.虚方法 virtual重写 override父类中的方法,在子类中并不适用,那么子类需要自主更改继承的方法或者是属性,那父类中加了vir ...
- 面向对象--类库、委托、is和as运算符、泛型集合
类库: 其实就是一堆类文件,只是看不到这些类的源代码,保密性好. 优点:保密性好 缺点:如果这个方法不好用,使用者无法自己去更改它. 给的大多是dll文件.使用方法:引用右键,添加引用,浏览,选择到相 ...
- 类库,委托,as.is,var,泛型集合
类库: 就是让别人调用你写的方法,并且不让别人看到你是怎么实现的.(比如说一些核心文件) 如果有功能你不会做,需要别人帮忙,那么你的同事可以帮你写好一个类,然后你来调用这个类中的方法,完成你的项目. ...
- 面向对象——is和as运算符、泛型集合 List<T>
二:is和as运算符: (1) is运算符 is 运算符用于检查对象是否与给定类型兼容.如果兼容返回true,否则返回false; 一般用于查看某个类是否实现了某个接口,或者是不是某个类的子类; 例如 ...
随机推荐
- Web3D编程入门总结——WebGL与Three.js基础介绍
/*在这里对这段时间学习的3D编程知识做个总结,以备再次出发.计划分成“webgl与three.js基础介绍”.“面向对象的基础3D场景框架编写”.“模型导入与简单3D游戏编写”三个部分,其他零散知识 ...
- 安装django
我已经有Python3.5的环境了.我们去下载Django.https://github.com/django/django.git 直接下载为zip解压即可. 然后在命令提示符下安装 1. 切换 ...
- 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错误.....,查找的 ...
- Python的文本数据
字符串的一些方法! 1.text.endswith(".jpg") 如果字符串是以给定子字符串结尾的,就返回值True. 2. text.upper(): ...
- generated clock
内部时钟的定义: create_generated_clock,通过-source,-edges,-divide_by,-multiply_by来执行clock沿. create_generated_ ...
- 摸索js的3d全景
先我在网上找到了一个例子,http://silali.vicp.net/three/emaple.html 完美实现3d全景,在详细查看这个例子后,发现他在手机上运行并不流畅,而且显不全并会卡顿. 我 ...
- Eclipse中实现JAVA代码的自动提示功能
1.打开Eclipse,在.出现时进行代码提示换成任意字母+.出现时的代码提示了(.abcdefghijklmnopqrstuvwxyz):
- Firefox刷新页面和复选框的奇葩问题
Firefox刷新页面后数据还在,估计很多人都碰到过. 但是有一个奇怪的地方就是复选框,如果你默认是勾选了,然后访问者取消勾选,刷新完之后,还是没有勾选,这是为什么? Firefox奇葩的地方就在于c ...
- Android PullToRefresh (GridView 下拉刷新上拉加载)
做这个需要自己去git hub上下载个pull-to-refresh 里面有个library为依赖包自己导到自己的项目中 (下载地址:https://github.com/chrisbanes/And ...
- [转]关于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 ...