c#中变量的声明和初始化

int i;

string text;

for(i = 0 ; i < 10; i++)

{

    text = "Line"+Convert.ToString(i);

    Console.WriteLine("{0}",text);

}

Console.WriteLine("Last text in loop :{0}",text);

这段代码编译也会失败,变量text必须在使用前进行声明和初始化,而text是在循环中初始化的,赋给text的值在循环退出后就丢失了。

int i;

string text="";

for(i = 0 ; i < 10; i++)

{

    text = "Line"+Convert.ToString(i);

    Console.WriteLine("{0}",text);

}

Console.WriteLine("Last text in loop :{0}",text);

只声明一个简单类型,并不会产生变化,并没有给变量分配内存。变量只有在赋值后才占用一块内存。如果这种占用内存的行为只发生在循环中,该值实际只是一个局部变量,在循环的外部就会超出其作用域。在循环外部赋值可以确保该值是主体代码的局部值,在循环内部仍处于该值的作用域中。