C# 如何将变量保存到新的文本文件中,以便在下次程序运行时加载这些变量?

C# 如何将变量保存到新的文本文件中,以便在下次程序运行时加载这些变量?,c#,console,save,C#,Console,Save,这里是新的C#er。我正在制作一个基于控制台的RPG。事情进展得很顺利,但我需要找出如何挽救这场比赛。我想有一种方法可以将我的应用程序中的变量保存到文本文件中,当应用程序再次运行时,该文本文件可用于加载变量。不幸的是,我不知道从哪里开始 此外,我还需要一种方法,在加载保存文件时转到代码中的某个点 我的一些变量包括: int xCoordinate, yCoordinate, hp, hpmax, level; 任何示例代码都将不胜感激。您可以将变量保存到XML文件中,并在下次启动时加载它们,该

这里是新的C#er。我正在制作一个基于控制台的RPG。事情进展得很顺利,但我需要找出如何挽救这场比赛。我想有一种方法可以将我的应用程序中的变量保存到文本文件中,当应用程序再次运行时,该文本文件可用于加载变量。不幸的是,我不知道从哪里开始

此外,我还需要一种方法,在加载保存文件时转到代码中的某个点

我的一些变量包括:

int xCoordinate, yCoordinate, hp, hpmax, level;

任何示例代码都将不胜感激。

您可以将变量保存到XML文件中,并在下次启动时加载它们,该过程称为。对于一个助手类,它可以将大多数c#对象(包括列表,但不包括字典)序列化和反序列化到XML文件或从XML文件中进行序列化和反序列化


如果只有几个值要传输到下一个控制台应用程序,则可以使用或。

您可以使用二进制序列化相当轻松地完成此操作。首先,创建一个包含所有要编写的变量的类:

[Serializable]
class Data
{
    int x;
    int y;
}
然后按如下方式使用:

Data data = new Data();

//Set variables inside data here...

// Save data
BinaryFormatter formatter = new BinaryFormatter();
using (FileStream stream = File.OpenWrite("C:\\Temp\\bin.bin"))
{
    formatter.Serialize(stream, data);
}

将一些变量写入文本文件很简单:

TextWriter tw = new StreamWriter("SavedGame.txt");

// write lines of text to the file
tw.WriteLine(xCoordinate);
tw.WriteLine(yCoordinate);

// close the stream     
tw.Close();
然后把它们读回:

// create reader & open file
TextReader tr = new StreamReader("SavedGame.txt");

// read lines of text
string xCoordString = tr.ReadLine();
string yCoordString = tr.ReadLine();

//Convert the strings to int
xCoordinate = Convert.ToInt32(xCoordString);
yCoordinate = Convert.ToInt32(yCoordString);

// close the stream
tr.Close();

保存变量的我的脚本(隐藏、加密、可编辑、更改、保存、删除)

如何使用:

SavingPlugin.SaveVariable("int16",TypeCode.Int16,15,"awwdad");
MessageBox.Show(SavingPlugin.GetVariable("int16", TypeCode.Int16,"awwdad").ToString());

您可以使用SaveVariable更改已存在变量的值,但需要输入正确的密码

请告诉我们您尝试了什么?我还没有真正尝试过任何东西。我对它做了一些研究,但我发现它似乎与我正在尝试的工作不匹配。这是Visual Studio中的一个项目吗?如果是,我可以展示一个巧妙的技巧。是的,Visual C#express。我也有Visual Studio 2012,但我是在C#express中启动该项目的,所以这就是我正在使用的。在新版本的Visual Studio中,不要忘记将System.IO添加到StreamReader和StreamWriter。这似乎是一个不错的选择,但这是否允许我在需要时从一开始加载应用程序?谢谢帮助。我想我会用这个,但你忘了你的名字;s
SavingPlugin.SaveVariable("int16",TypeCode.Int16,15,"awwdad");
MessageBox.Show(SavingPlugin.GetVariable("int16", TypeCode.Int16,"awwdad").ToString());