0

在过去的几个小时里,我一直在研究如何为我正在制作的游戏实现简单的保存/加载功能。

保存数据被存储在一个文本文件中,在游戏过程中玩家可以保存,存储玩家和敌人的位置,分数等。

我正在为此使用 StreamWriter 和 StreamReader,并且无法决定是使用 using 语句还是 try-catch 来实现它。

为了节省空间,我将仅列出 Save 方法,因为它们与加载方法基本相同。

使用:

 static void SaveAccounts(string path)
      {

            using (StreamWriter writer = new StreamWriter(path))
            {
                writer.WriteLine(accountNumber);
                writer.WriteLine(name);
                writer.WriteLine(address);
                writer.WriteLine(balance);     
            }
      }

试着抓

    public void Save(StreamWriter writer)
     {
        writer.WriteLine(accountNumber);
        writer.WriteLine(name);
        writer.WriteLine(address);
        writer.WriteLine(balance);
     }

    public void Save(string filename)
    {
       StreamWriter writer = null;
        try
        {
            writer= new StreamWriter(filename);
            Save(writer);
        }
        catch (Exception e)
        {
            throw e;
        }
        finally
        {
            if (writer!= null) writer.Close();
        }
    }

在这种情况下,我使用“帐户”代替我的精灵,只是看起来更简单。

那么任何人都可以给我任何你会使用的见解吗?如果有的话。

非常感谢

4

2 回答 2

3

您应该使用该using语句。

没有理由多写 8 行代码来做完全相同的事情,但是是错误的。
也没有理由编写 4 行额外的代码来正确执行相同的操作。

于 2013-04-16T00:49:14.217 回答
1

try/catch即使需要多几行,我也会使用。为什么?因为using您无法控制出现异常时会发生什么。和try/catch你一起做。

例如,想象一下如果在保存过程中出现异常会发生什么。随着using程序停止并关闭文件,无论您的程序能够写入什么信息。也就是不完整。try/catch您可以决定删除该文件。您还可以将所有内容写入临时文件并复制到最终位置,前提是所有代码都可以正常工作,否则只需删除临时文件。

于 2013-04-16T01:13:18.050 回答