域和属性
为了保存类的实例的各种数据信息,C#给我们提供了两种方法:域和属性.属性实现了良好的数据封装和隐藏.
域的初始化:
对于静态变量,非静态变量和数组元素,这些变量自动初始化为本身的默认值.对于所有引用类型的变量,默认值为null.
在类中,域的初始化分为两种:对于静态域,类在装载时进行初始化;对于非,在类的实例创建时进行.在默认的初始化前,域的值是不可预测的.比如:
using System;
class Test{
static int a=b+1;//必须为静态变量,否则编译不会通过.
static int b=a+1;
Test(){//构造函数不能有返回值,包括void
Console.WriteLine ("the a={0};b={1};",a,b);
}
public static void Main(){
Test a=new Test();
}
}
和域不同,属性不属于变量,因此不能把属性作为ref或out参数进行传递.
静态属性需要使用类型名称进行引用.静态属性访问器中使用this将会出错