C#学习笔记

来源:互联网 发布:滴滴司机 知乎 编辑:程序博客网 时间:2024/05/20 17:25
csc /target:library filename(*.cs)  将类库编译成dll文件

csc /reference:filename(*.dll) filename(调用该dll的主文件*.cs)       编译需调用dll文件的主文件


using 可用来指定命名空间别名


成员方法访问控制修饰符总结:(能见度由低到高)
1)default 和 Private一样,只在该类内部可被访问。
2)Protected在该类内部以及继承该类子类可被访问
3)Internal和 Protected internal可以在同一程序集内部被访问。区别是:当继承父类的子类和父类不在同一程序集时,父类中Internal不可被子   类访问,而父类中的Protected internal可以被子类访问。
4)Public可以在任何地方被访问。


类访问控制修饰符:
1)当在类前面没有加任何修饰符时,就默认该类为internal类型,在同一程序集内可见。
2)sealed 表不能被继承的类
3)partial 表可以声明在不同文件的中的同一个类。


写代码时,将可能发生非预期溢出的代码放到一个checked块中。
写代码时,将允许发生溢出的代码显式地放到一个unchecked块中。


在强制类型转换上,使用as的效率高于使用is,因为is要执行2次的类型检查,而as只需1次。


属性的声明可实现get,set两个访问器。属性有四个种类:
1)可读写属性,需实现get与set访问器
2)只读属性,需实现get访问器
3)只写属性,需实现set访问器
4)static属性,只能访问静态数据


索引器与数组的区别:
1)索引器的索引值类型不受限为整数
2)索引器允许重载
3)索引器不是一个变量,索引器并没有直接对应应用数据存储的地方,而数组则有,索引器有get访问器与set访问器,用来指明要读取或写入索引器元素时,需要执行的代码。
索引器与属性的区别:
1)标识方式:属性以名称来标识;索引器则以函数签名(this[])来标识。
2)索引器可以被重载:因为属性是以名称标识的,所以不能被重载;索引器是用函数签名标识的,因此可以重载。
3)索引器不能声明为static:属性可以为static,而索引器永远属于实例成员,不能为static。


委托链 (+= , -=)、 匿名方法

定义一个事件的步骤:
1)在事件发行者中定义一个事件(声明一个事件之前要先声明一个跟事件关联的委托)
2)在事件发行者中触发事件(判断事件是否为空,不为空则触发事件)
3)在事件订阅者中定义事件处理程序(事件处理程序需要和委托类型相一致,即返回值和参数类型必须相同)
4)向事件发行者订阅一个事件(+=,-=)


抽象方法和虚方法的区别:
1)抽象方法和虚拟方法的区别在于:虚拟方法有一个实现部分,并为派生类提供覆盖该方法的选项,(即可覆盖也可不覆盖),而抽象方法没有提供实现部分,强制派生类覆盖方法(否则派生类不能成为具体类,即派生类如果也是抽象类,可不覆盖该方法。)
2)abstract方法只能在抽象类中声明,而虚方法则不是
3)abstract方法必须在派生类中重写,而virtual则不必
4)abstract方法不能声明方法实体,虚方法可以。
5)包含abstract方法的类不能被实例化,而包含virtual方法的类则可以。
原创粉丝点击