私の質問は本当に単純ですが、何時間も Google を検索しても、私の (明らかに) 独特な状況に対する答えが得られません。問題は、次のコードで割り当てられていない変数を使用していることです
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
}
}
なぜ1行が機能し、1行が機能しなかったのかを知っていれば、それを理解できたと思いますが、...何かアイデアはありますか?