看书笔记20080509

 
1.       定义类时,时能使用修饰符internal和public;
2.       Abstract定义的类是抽象类,不能被实例化,只能被继承;sealed定义的类是密封类,密封类不能被继承;
3.       静态类不能被实例化也不能被继承;
4.       子类的可访问性不能比其父类更高;
5.       Main方法是静态的;
6.       Const与readonly的区别:
l Const只能在声明时初始化;readonly即可以在声明时初始化也可以在构造器中初始化;
l Const隐含static,不可以再写static const,readonly则不默认static;
l Const是编译期静态解析的常量,因此其表达式必须在编译时就可以求值,readonly则是运行期动态解析的常量;
l Const既可用来修饰类中的成员,也可修饰函数体内的局部变量,readonly只可以用于修饰类中的成员。
7.       静态字段属于类,为类的所有对象所公用;非静态字段属于某个具体的对象,为特定的对象所专有;非静态字段只能通过对象来访问,静态字段只能通过类来访问;
8.       数组型参数必须在参数表中位于最后,且只能是一位数组,例如:string[]或string[][],而不能是string[,],数组型参数不能再有ref和out修饰符,传递参数时,可以是数组、多个数值或者没有参数,例如(a),(10,20,30),(),所以数组型参数适用于参数个数不确定的情形;
9.       静态类不能被实例化和继承,静态方法中不能使用非静态成员;
10.   虚方法有实现部分,抽象方法没有实现部分,抽象方法必须包含在抽象类中,抽象类不一定包含抽象方法,抽象类中可以定义非抽象方法,抽象类的派生类必须重写基类中的抽象方法;
11.   Base代表基类,this代表当前类的成员;
12.   在C#中调用API函数,必须首先导入NameSpace:using system.runtime.interopservices,接着使用下面的语句来声明一个API:
[dllinport(“user32.dll”)]
Static extern int messagebox();
其中dllimport属性被用来导入dll,这个dll中包括调用的外部方法。关键字extern表示这个方法将在工程外部执行,使用dllimport导入的方法必须使用extern修饰符;
13.   缺省构造函数的执行条件是:没有为类编写任何构造函数;该类的父类一定要存在一个无参数的构造函数;
14.   静态构造函数没有访问修饰符,不能带有参数,一个类只能有一个静态构造函数,只能访问类的静态成员,不能访问实例成员,一个类可以同时拥有实例构造函数和静态构造函数;
15.   重写类的dispose方法可以立即释放资源,但是必须显式调用dispose;
16.   当需要将方法作为参数传递时,使用委托delegate;委托中可以包含多个方法使用+和+=将方法加入到委托中,使用-和-=从委托中删除相应的方法;由于可能会发生丢失返回值的情况,所以多点委托只能使用没有返回值的方法;
17.   对事件只能使用+=和+-运算符,=运算对事件是无效的;
18.   结构与类的区别:
不能为结构定义无参数的构造函数;
不能在声明字段时为字段赋值,而是要在带参数的构造函数中初始化它们的值;
结构不支持继承;
结构是值类型;
堆栈的执行效率要比堆的执行效率高。,但是堆栈的资源有限,所以不适合处理大的逻辑复杂的对象。
19.   一个接口可以从多个基接口继承,一个类或结构可以实现多个接口;所实现的接口的标示符出现在类的基列表中,类的基列表同时包含类和接口时,列表中首先出现的应该是基类;通过使用接口,就可以实现多重继承的功能;
20.   反省集合比基于Object的栈速度更快,特别是处理数值类型时。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值