有9中类成员:字段,常数,方法,构造函数,析构函数,属性,运算符,事件,索引器
1.字段
static 字段被所有对象共享,只可通过类名访问,不可通过对象访问。static字段不提供自动同步机制,不是线程安全的。
readonly字段只可在声明时或者在所属类的构造函数中赋值,可以被static修饰。
2.常数
const常数的值在编译时指定,不占用对象空间,被编译到使用该对象的可执行代码中。
const常数只可通过类名访问。不可用static修饰。
3.方法
构成:一个可访问性级别,一个返回类型,一个函数名,一个参数列表。可以被static 修饰。static方法只可通过类名来访问。
访问级别:默认为private。
参数:不支持默认参数。默认值传递。对象引用通过值传递时,可以允许方法完全控制对象,但并不能改变引用本身。
参数修饰符:ref 引用传递;out 传出;
params 向方法传递不定数量的参数,必须和一个数组联系在一起。void f(params int []list)。
4.构造函数
特点:无返回值,函数名和类名同。分两类。
实例构造函数:用于初始化特定对象。New时调用。可重载。
静态构造函数:也成为类构造函数,在第一次使用类之前调用。访问性总是public。
基类初始化:子类构造函数会自动调用基类的默认构造函数。有重载时,如不想调用基类的默认构造函数,必须显示指定。
public class cat :animal
{
static cat(){//操作静态成员变量} //静态构造函数。
pubic cat(){} //等价于public cat():base(){}
public cat(string name):base(name){}
}
构造函数中不可使用this指针。
初始化过程:1. 初始化全部静态自段。2.调用静态构造函数。3.初始化全部实例字段。4.调用实例构造函数。
5.析构函数
析构函数不一定会被调用。可能会在垃圾回收时被调用。~cat(){};
如要释放稀有资源,可以实现close或Dispose。