【Notes】结构变量中的作用域

static void main()
{
   
int i;
   
for(i=0;i<10;i++)
   { 
      
string text="Line"+Covert.ToString(i);
      Console.WriteLine(
"{0}",text);
   }
   Console.WriteLine(
"Last text output in loop:{0}",text);
   Console.ReadKey();

字符串常量text是for循环里面的局部变量,这段代码不能编译,在循环外部调用了该变量,超过了循环的作用域,修改代码如下:

 1 static void main()
 2 {
 3    int i;
 4    string text;
 5    for(i=0;i<10;i++)
 6    { 
 7       string text="Line"+Covert.ToString(i);
 8       Console.WriteLine("{0}",text);
 9    }
10    Console.WriteLine("Last text output in loop:{0}",text);
11    Console.ReadKey();
12 

这段代码也会失败,原因是变量必须在使用前初始化,text是在for循环中初始化的,在循环块儿退出后值就丢失了,修改代码如下:

 1 static void main()
 2 {
 3    int i;
 4    string text="";
 5    for(i=0;i<10;i++)
 6    { 
 7       string text="Line"+Covert.ToString(i);
 8       Console.WriteLine("{0}",text);
 9    }
10    Console.WriteLine("Last text output in loop:{0}",text);
11    Console.ReadKey();
12 

posted on 2009-09-11 16:41  c_sharp  阅读(265)  评论(0)    收藏  举报