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);
只声明一个简单类型,并不会产生变化,并没有给变量分配内存。变量只有在赋值后才占用一块内存。如果这种占用内存的行为只发生在循环中,该值实际只是一个局部变量,在循环的外部就会超出其作用域。在循环外部赋值可以确保该值是主体代码的局部值,在循环内部仍处于该值的作用域中。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。