你好,我正在尝试为学校项目制作一个 cookie 点击器,但我不知道如何将多个数据保存到你的程序中,你可以在此处的 c# WPF 下找到保存/加载数据
private void btnSave_Click(object sender, RoutedEventArgs e)
{
var OpgeslagenData = "opslag.txt";
using(StreamWriter sw = File.CreateText(OpgeslagenData))
{
sw.WriteLine(globaleDingen.koekjes);
sw.WriteLine(globaleDingen.aantalUpgraded);
sw.WriteLine(globaleDingen.klick);
sw.WriteLine(globaleDingen.upgrade);
sw.WriteLine(globaleDingen.goldBars);
}
}
private void btnLoad_Click(object sender, RoutedEventArgs e)
{
int koekjes;
int aantalUpgraded;
int klick;
int upgrade;
int goldBars;
var OpgeslagenData = "opslag.txt";
using(StreamReader sr = File.OpenText(OpgeslagenData))
{
koekjes = Convert.ToInt32(sr.ReadLine().ElementAt(1));
aantalUpgraded = Convert.ToInt32(sr.ReadLine().ElementAt(2));
klick = Convert.ToInt32(sr.ReadLine().ElementAt(3));
upgrade = Convert.ToInt32(sr.ReadLine().ElementAt(4));
goldBars = Convert.ToInt32(sr.ReadLine().ElementAt(5));
}
globaleDingen.koekjes = koekjes;
globaleDingen.aantalUpgraded = aantalUpgraded;
globaleDingen.klick = klick;
globaleDingen.upgrade = upgrade;
globaleDingen.goldBars = goldBars;
}
我希望有人能帮助我
使用现有的序列化格式,这允许库自动将对象与串行表示形式相互转换。有些基于文本的格式(例如 json 或 xml)是人类可读的,并且往往会使调试问题变得更加容易。或者二进制格式,如 protobuf,往往可以提供更好的大小和性能。
如果您只想保存和加载一小块数据,我建议使用 system.text.json:
public class WeatherForecastDTO
{
public DateTimeOffset Date { get; set; }
public int TemperatureCelsius { get; set; }
public string? Summary { get; set; }
}
public void Example()
{
var weatherForecast = new WeatherForecastDTO
{
Date = DateTime.Parse("2019-08-01"),
TemperatureCelsius = 25,
Summary = "Hot"
};
var fileName = "WeatherForecast.json";
using (var fs = File.Create(fileName))
{
JsonSerializer.Serialize(fs, weatherForecast);
}
using (var fs = File.OpenRead(fileName))
{
var deserialized = JsonSerializer.Deserialize<WeatherForecastDTO>(fs);
}
}
您经常希望将用于序列化的类与包含实际逻辑的类分开,这有时称为“数据传输对象”(DTO)。此类对象通常需要公共 getter 和 setter,以及无参数构造函数。
您通常还可以使用属性和设置来控制对象的序列化方式。
另一种选择是数据库,可能是像 SQLite 这样的嵌入式数据库。通常与“对象关系映射器”(ORM) 一起进行对象到数据库行的转换。请参阅实体框架入门。数据库使用起来有点复杂,但如果您需要处理大量对象,往往可以提供更好的扩展。