이 코드를 컴파일 할 때 writer
이 SaveArray
의 할당되지 않은 로컬 변수라는 컴파일 오류가 발생합니다. 유사한 방법 LoadArray
에서 reader
에 대해 불평하지 않습니다. 왜 이런 경우입니까? 그들은 똑같은 행동을해야하지 않습니까? new StreamWriter(fileName);
가 예외를 throw하면로컬 변수가 한 방법에 할당되었지만 거의 동일한 방법으로 할당되지 않은 이유는 무엇입니까?
static void SaveArray(string fileName, string[,] arr)
{
StreamWriter writer;
try
{
writer = new StreamWriter(fileName);
}
catch
{
MessageBox.Show("Error, could not open " + fileName + " for saving");
}
try
{
foreach (string entry in playerArray)
{
writer.WriteLine(entry);
}
}
catch
{
MessageBox.Show("Couldn't save");
}
writer.Close();
}
static void LoadArray(string fileName, string[,] arr)
{
StreamReader reader;
try
{
reader = new StreamReader(fileName);
}
catch
{
MessageBox.Show("Error when reading file" +fileName);
return;
}
try
{
for(int i=0; i<=arr.GetUpperBound(0); ++i)
{
for (int j = 0; j<=arr.GetUpperBound(1); ++j)
{
arr[i, j] = reader.ReadLine();
}
}
}
catch
{
MessageBox.Show("Could not read from file " +fileName);
}
reader.Close();
}
이제 'x'버전이 정상인 이유를 설명합니다. –
@LeeTaylor 첫 번째 catch 블록에서 LoadArray 메서드를 반환하기 때문입니다. –
다른 방법으로 항목을 s.WriteLine 할 수 있습니까? –