类库、委托、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; 一般用于查看某个类是否实现了某个接口,或者是不是某个类的子类; 例如 ...
随机推荐
- 微软良心之作——Visual Studio Code 开源免费跨平台代码编辑器
微软良心之作——Visual Studio Code 开源免费跨平台代码编辑器 在 Build 2015 大会上,微软除了发布了 Microsoft Edge 浏览器和新的 Windows 10 预览 ...
- RDIFramework.NET ━ 9.12 表字段管理 ━ Web部分
RDIFramework.NET ━ .NET快速信息化系统开发框架 9.12 表字段管理 -Web部分 表(字段)综合管理模块主要功能是对数据表本身,表的各个字段做相应的控制,具体有以下功能: ...
- c# signalr聊天室开源资料
SignalR+LayIM源码: http://www.cnblogs.com/panzi/p/5742089.html 钉钉客户端源码: http://www.cnblogs.com/loveson ...
- Struts2(三):新建Struts2工程
下载的struts2xx-all.zip包对搭建项目的作用 一般情况下,我们下载一个Struts2的full包时,并不知道新建过程中需要哪些包,那么这时我们可以从下载的包中解压出的目录\apps\st ...
- Oracle常用操作-----(二)
Oracle主要类型函数: 单行函数:只能输入一行结果,返回一个结果.常见的单行函数有: 字符函数 数字函数 转换函数 日期函数 2.聚合函数:同时可以对多行数据进行操作,并返回一个结果.(AVG.S ...
- winform listview控件
ListView控件 1.常用的基本属性: (1)FullRowSelect:设置是否行选择模式.(默认为false) 提示:只有在Details视图该属性才有意义. (2) GridLines:设置 ...
- [3] 智能指针std::auto_ptr
[1]std::auto_ptr 对于编译器来说,智能指针实质是一个栈对象,而并非指针类型. 智能指针通过构造函数获取堆内存的管理所有权,而在其生命期结束时,再通过析构函数释放由它所管理的堆内存. 所 ...
- NET中的类型和装箱/拆箱原理
谈到装箱拆箱,DebugLZQ相信给位园子里的博友一定可以娓娓道来,大概的意思就是值类型和引用类型的相互转换呗---值类型到引用类型叫装箱,反之则叫拆箱.这当然没有问题,可是你只知道这么多,那么Deb ...
- Redundant Paths-POJ3177(并查集+双连通分量)
Redundant Paths Description In order to get from one of the F (1 <= F <= 5,000) grazing fields ...
- Cenos(6.6/7.1)下从源码安装Python+Django+uwsgi+nginx到写nginx的环境部署(一)
梳理下这几个的关系: centos是redhat的社区版操作系统. Python2.7.5是开发语言(centos6.5下自带的python是2.6.6版本,所以需要源码更新,而centos7.1下面 ...