我的问题真的很简单,但数小时的谷歌并没有为我(显然)独特的情况提供答案。问题是在以下代码中使用了未分配的变量
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace SimpleBasicCompiler
{
class Lines : System.Collections.IEnumerable
{
// Variables
private ArrayList<string> lines;
// Constructor
public Lines()
{
lines = new ArrayList();
}
public void Add(string line)
{
lines.add(line);
}
// Iterator
public System.Collections.IEnumerator GetEnumerator()
{
for (int i = 0; i < lines.length(); i++)
{
yield return lines[i];
}
}
public void Print()
{
foreach (string line in lines)
{
XFormMain.SetStatus(line); // this line errors
System.Console.Write(line); // this line dosn't
}
}
} // End Class Lines
} // End namespace
我的问题是为什么?我无法更改声明或它使迭代器语法无效我什至尝试了以下
public void Print()
{
string lineB = "";
foreach (string line in lines)
{
lineB = line; // now this line errors
XFormMain.SetStatus(lineb); // and this line doesn't
System.Console.Write(line); // this line doesn't in either situation
}
}
我想如果我知道为什么一条线有效而一条线我不能弄清楚但是......有什么想法吗?