gpt4 book ai didi

c# - 为什么局部变量在一种方法中赋值,但在几乎相同的方法中未赋值?

转载 作者:太空宇宙 更新时间:2023-11-03 18:28:51 24 4
gpt4 key购买 nike

当我编译这段代码时,我收到一个编译错误,指出 writerSaveArray 中未分配的局部变量。它不会在类似方法 LoadArray 中提示 reader。为什么会这样?他们的行为不应该一样吗?

    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();
}

最佳答案

如果 new StreamWriter(fileName); 抛出异常,则 s 保持未分配状态。

尝试在 s.WriteLine(entry); 中使用它是错误的。

正如 @DarrenYoung 评论的那样,LoadArraycatch 返回,所以 xx 中。 ReadLine() 保证被初始化。

关于c# - 为什么局部变量在一种方法中赋值,但在几乎相同的方法中未赋值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27027644/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com