在试验静态变量时,我很惊讶地知道为什么静态“int”导致0(零)和非静态导致编译时错误。
考虑案例1
static int i;
static void Main()
{
Console.Write("Value of i = " + i);
Console.ReadKey();
}
输出
Value of i = 0
案例2,删除静态
static void Main()
{
int i;
Console.Write("Value of i = " + i);
Console.ReadKey();
}
此输出将导致编译时错误
Error 1 Use of unassigned local variable 'i'
这里的问题是两种情况如何不同,即第一个结果为0,另一个结果为编译器错误。
答案 0 :(得分:2)
根据C#语言的定义,类型具有"默认值",如果您不指定其他内容,则会分配给它们。数字的默认值为0,boolean - false,引用类型 - null和结构 - 每个成员都有它的类型。