首页 > 代码库 > 面向对象——类库、委托
面向对象——类库、委托
一:类库
引用别人写的类
其实就是一堆类文件,只不过你看不到这些类的源代码,保密性好。
优点:保密性好
缺点:如果这个方法不好用,使用者无法自己去更改它。
1、源代码方法:
可以将直接写好的.cs源代码文件,添加进我的解决方案文件夹下,在解决方案资源管理器中, 项目上右键→添加→现有项,来添加此.cs源代码文件的使用,需要引入相应的命名空间
2、类库方法:
一个dll文件,就是一个类库 它人新建一个类库,在里面编写类和相应的方法,生成后出现一个dll文件,拿过来,放在自己的 程序文件夹里,在项目右键→添加引用→找到此dll类库文件添加,然后引用命名空间,就可以调用相应的类中的方法了
注意类一定要是public访问权限
类库使用是多公司联合开发时使用的方式,因为每个公司都有自己的核心技术,我允许你使用,但不允许你 知道我是怎么编写的,所以需要dll类库文件,因为dll文件是将源代码文件编译后的文件,看不到源代码, 所以你只能调用不允许更改
二:委托
委托:
也称为代理,事件也是一种委托;
定义在类的最外面
1、定义委托
关键字:delegate
函数签名:签名和函数保持一致
定义委托的时候要根据函数来定义
public delegate int First(int a,int b);
指向的方法的返回类型,需要参数必须一致!
2、定义委托变量,指向方法
委托不能被实例化,因为不是类;
First f = new JiaFa; //新建委托变量,指向方法,注意!!方法不需要小括号!!
第二次可以使用+=
public int JiaFa(int a,int b)
{
return a+b;
}
调用:
f(5,3);
可以理解为函数的指针,委托指向哪个函数,则这个委托就代表哪个函数
可以让函数当做参数一样进行传递
//定义委托 public delegate void SuiBian(string s); class Program { static void Main(string[] args) { //委托 //把方法参数化 SuiBian s = China; s += America; //+=是绑定方法,将两个委托的调用列表连接在一起 -=去掉一个方法 =是替换 //调用语音方法 Speak(s); Console.WriteLine(); Console.ReadLine(); } //语音功能的方法 static void Speak(SuiBian yu) { yu("张三"); //if (n == 0) //{ // America(); //} //else if (n == 1) //{ // China(); //} //else if (n == 2) //{ // HanYu(); //} //America(); //China(); } //语音包 public static void America(string s) { Console.WriteLine(s+"hello"); } static void China(string s) { Console.WriteLine(s+"你好"); } static void HanYu(string s) { Console.WriteLine(s+"bjdkaj"); } }
面向对象——类库、委托