1 类库
问题:调用别人类中的方法?
(1) C#源代码文件,包括在自己的项目中
生成:建一个类--生成项目--右键项目名--在文件资源管理器中打开文件夹--复制类文件.cs;
调用:项目名右键--在文件资源管理器中打开文件夹--粘贴类文件.cs--显示所有文件--右键复制的文件--加到项目中--using项目名。
(2)类库.dll
生成:新建类库--编写代码--生成项目--右键项目名--在文件资源管理器中打开文件夹--bin--degug--复制.dll;
调用:项目名右键--在文件资源管理器中打开文件夹--粘贴.dll到debug中--引用右键--添加引用--浏览--using项目名。
优点:你写的方法别人看不到实现过程,保密性强。
缺点:如果你写的方法有错误,别人无法更改。
2 委托
声明语句写在命名空间下面或类中;
委托是一个类型安全的对象,它指向程序中另一个以后会被调用的方法(或多个方法)。通俗的说,委托是一个可以引用方法的对象,当创建一个委托,也就创建一个引用方法的对象,进而就可以调用那个方法,即委托可以调用它所指的方法。
可以理解为 函数的指针
delegate - 定义关键词
(1)定义委托类型:[访问修饰符]delegate 返回类型 委托名(形参);
public delegate int FirstDel(int aaa, int bbb);
(2)创建委托变量,赋值,函数指向:委托名 委托实例名=new 委托名(某个类的方法)
FirstDel f1 = new JiaJian().Jia;
(3)使用委托调用方法:委托实例名(实参);
int c = f1(10, 20);
委托注意事项:
委托和方法必须具有相同的参数。
委托可以调用多个方法,即一个委托对象可以维护一个可调用方法的列表而不是单独的一个方法,称为多路广播(多播)。
使用+=和-=运算实现方法的增加和减少。
3 is和as运算符
var:万能类型;
object:所有类型的基类;
as:类型转换,as 操作符首先测试转换是否合法,如果合法就转换;如果转换不成功,不会报错,而是返回一个null;
is:判断某个变量/对象,是不是某一种类型,返回bool值。is操作符永远不会抛出异常。
4 泛型集合List<T>
T代表要使用的类型,既可以是简单类型,如string、int,也可以是用户自定义类型;List<T>和ArrayList的使用方法类似。
不固定长度,固定数据类型的一种集合。
泛型集合可以约束它所存储的对象的类型,访问集合中的元素时无须类型转换。
允许将类名作为参数传递给泛型类型,泛型集合可以作为类中的一个属性,属性使用泛型集合必须实例化。