C#此作用域设计为什么要这样?
程序一
static void Main(string[] args)
{
int i;
string text;
for (i = 0,text= "p "; i < 10; ++i)
{
text = "ggg " + Convert.ToString(i);
Console.WriteLine( "{0} ", text);
}
Console.WriteLine( "lase {0},{1} ", text,i);
Console.ReadKey();
}
程序二
static void Main(string[] args)
{
int i;
string text;
for (i = 0; i < 10; ++i)
{
text = "ggg " + Convert.ToString(i);
Console.WriteLine( "{0} ", text);
}
Console.WriteLine( "lase {0},{1} ", text,i);
Console.ReadKey();
}
程序二编译不通过,显示“错误 CS0165: 使用了未赋值的局部变量“text”“
比较奇怪,C#问什么这样设计?有什么好处吗?
两个不同在于for( )中程序一赋值了,而二没有。
------解决方案--------------------int i;
string text = " ";
for (i = 0; i < 10; ++i)
{
text = "ggg " + Convert.ToString(i);
Console.WriteLine( "{0} ", text);
}
Console.WriteLine( "lase {0},{1} ", text, i);
Console.ReadKey();
------解决方案--------------------程序二
static void Main(string[] args)
{
int i;
string text;
for (i = 0; i < 10; ++i)
{
text = "ggg " + Convert.ToString(i);
Console.WriteLine( "{0} ", text);