类库:
说白了,就是让别人调用你写的方法,并且不让别人看到你是怎么实现的。
如果有功能你不会做,需要别人帮忙,那么你的同事可以帮你写好一个类,然后你来调用这个类中的方法,完成你的项目。
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 = 10; int two = 20; //写一个加减运算方法,可以另外写一个项目和类,在该项目中进行引用即可 //右键项目,选择倒数第二个文件资源管理器,把需要添加的类复制粘贴到需要的项目中, //或者可以点击解决方案中的显示所有文件,续重需要添加的类,单击即可 //实例化,一定要先引用所需要的那个类 //使用方式一:普通方式 jiajian j = new jiajian(); int c = j.jia(one, two); Console.WriteLine(c); //使用方式二:匿名对象使用方式,可以简化代码 int h = new jiajian().jia(10, 20); 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(10, 20);//被指向后f1就代表这个方法,并可以使用 Console.WriteLine(g); new Program().a2(f1, 10); //三、知识点补充 //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(); } } }
面向对象思维导图整理