变量的域

比较这两段代码:
代码一:
1int i;
2            string text;
3            for(i=0;i<10;i++)
4            {
5                text = "Line" + Convert.ToString(i);
6                Console.WriteLine("{0}", text);
7            }

8            Console.WriteLine("Last text output in loop:{0}", text);
9            Console.ReadKey();
代码二:
1int i;
2            string text="";
3            for(i=0;i<10;i++)
4            {
5                text = "Line" + Convert.ToString(i);
6                Console.WriteLine("{0}", text);
7            }

8            Console.WriteLine("Last text output in loop:{0}", text);
9            Console.ReadKey();
代码一错误编译不了:提示--错误 1 使用了未赋值的局部变量“text” 
而代码二可以编译通过。
原因:主要涉及到分配给text变量的内存空间,实际上任何变量都是这样。只声明一个简单的变量类型,并不会引起其他的变化。
只有在给变量赋值后,这个字才占用一块内存空间。如果这种占据内存空间的行为在循环中发生,该值实际上定义为一个局部值,在循环的外部会超出其作用域。
posted @ 2007-10-25 14:31  yfcomeon  阅读(161)  评论(0编辑  收藏  举报