C#基础知识之二
1、 静态字段、静态成员:被类的所有实例共享,对其改变,对所有实例都可见。
2、 声明为静态的有:字段、方法、属性、构造函数、运算符、事件。
3、 常量与静态量不同:常量没有自己的存储位置,在编译时被编译器替换。
4、 类属性与类字段不同:属性是一个函数成员,它不为数据存储分配内存并执行代码。
5、 属性get访问器的所有路径必须包含一条return语句,返回一个属性类型的值。
6、 实例构造函数是一个特殊的方法,它在实例创建时执行,用于初始化实例的状态,声明为public,除非想建立单例模式时需要声明为private。
7、 构造函数的名称和类名相同,不能有返回值。
8、 构造函数默认是不带参数,方法体为空。自定义可以带参数,可以被重载
9、 自定义构造函数时,默认零参数构造函数将不可使用,想用必须自定义零参数构造函数。
10、 静态构造函数:类中只能有一个,且不能带参数,不能用访问修饰符。
11、 静态构造函数不能从程序中显示调用,被系统自动调用,发生在类实例被创建之前,在类的静态成员被引用之前。
12、 对象初始化列表:成员在创建对象中必须是public,初始化在构造函数完成之后发生。
13、 析构函数执行实例被销毁之前需要的清理或释放非托管资源的行为,只能有一个,不能带参数,不能带访问修饰符,与类有相同的名称但以“~”作前缀,只对实例起作用,没有静态析构函数,不能在代码中显式调用析构函数。
14、 析构函数只应释放对象自己的外部资源,不应该访问其他的对象。
15、 Const字段与readonly字段的区别:前者值在编译期决定,后者可以在运行期决定。
16、 This关键字使用范围:实例构造函数、实例方法、属性和索引的实例访问器。
17、 声明索引:索引的名称为this,参数列表在方括号中间,至少有一个参数。
18、 类中重载的索引必须有不同的参数列表。
19、 访问器的访问修饰符重要的限制:仅当成员同时有get和set时,其才能有访问修饰符,但只能有一个有访问修饰符。
20、 分部类:和普通类声明相同,除了那个附加的类型修饰符partial。
21、 分部方法:定义声明给出签名和返回类型,实现部分只是一个分号;实现声明给出签名、返回类型,还有正常形式的语句块实现。
22、 分部方法声明签名不能包含修饰符,返回类型必须是void,参数列表不能包含out参数。
23、 分部方法可以有定义部分可以没有实现部分。有实现部分必须有定义部分。
24、 类继承:对已存在类进行扩展,已存在的类为基类(base class),新类称为派生类(derived class)。
25、 object类是基础类,是唯一的非派生类,其他所有类都是派生类。
26、 一个类只能单继承,继承的层次没有限制。
27、 派生类中要隐藏基类的数据成员:声明新的相同类型的成员,并使用相同的名称。
28、 派生类中要隐藏基类的函数成员:声明新的带有相同签名的函数成员。签名由名称和参数列表组成,不包括返回类型。
29、 派生类中要隐藏成员要在新的成员前加new,让编译器知道你故意隐藏了成员。