C/C++中未经初始化的变量是不能使用的。在C#中,系统将为每个未经初始化的变量提供一个默认值。对于所有引用类型的变量,默认值是null。所有值类型的变量的默认值是固定的。对于静态域,类在装载时对其进行初始化;对于非静态域,在类的实例创建时进行初始化。在默认的初始化之前,域的值是不可预测的。
例如下面的代码是合法的:
class Test
{
static int a = b+ 1;
static int b = a+ 1;
}
实际上等价于:a = 1; b = 2;
而下面的代码则是非法的:
class A
{
int x = 1;
int y = x + 1;
}
因为非静态变量x在类A实例化以前并没有初始化,代码y = x + 1无法得到正确的x的值。
文章来源:http://spaces.msn.com/members/Grisson/Blog/cns!1pdzVqmOhs8O_w1Y7GbtnyFQ!184.entry