类库、委托、is as运算符、泛型集合

时间:2021-09-21 00:07:31

类库:

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

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

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运算符、泛型集合