我想问你是否有人知道如何保存progrem中的更改,以便在重新启动时,更改仍然存在?
例如,我有一个布尔变量,他的defualt值是“false”。 我希望在初始化之后,将值更改为“true”,这样当我关闭并启动程序时,布尔变量值将为真。
答案 0 :(得分:0)
我们拥有的数据库......
或配置文件
或文件系统
您需要保留数据,而这些数据必须位于内存中,必须位于磁盘上
了解各种数据持久策略尝试的事情,如果您遇到困难,请告诉我们
答案 1 :(得分:0)
选择要用于保存数据的格式。在应用程序启动时 - 读取文件并将其反序列化到您的模型。关闭 - 序列化并保存到文件。看看下一个问题:Best practice to save application settings in a Windows Forms Application
下一个样本来自上述链接:
using System;
using System.IO;
using System.Web.Script.Serialization;
namespace MiscConsole
{
class Program
{
static void Main(string[] args)
{
MySettings settings = MySettings.Load();
Console.WriteLine("Current value of 'myInteger': " + settings.myInteger);
Console.WriteLine("Incrementing 'myInteger'...");
settings.myInteger++;
Console.WriteLine("Saving settings...");
settings.Save();
Console.WriteLine("Done.");
Console.ReadKey();
}
class MySettings : AppSettings<MySettings>
{
public string myString = "Hello World";
public int myInteger = 1;
}
}
public class AppSettings<T> where T : new()
{
private const string DEFAULT_FILENAME = "settings.jsn";
public void Save(string fileName = DEFAULT_FILENAME)
{
File.WriteAllText(fileName, (new JavaScriptSerializer()).Serialize(this));
}
public static void Save(T pSettings, string fileName = DEFAULT_FILENAME)
{
File.WriteAllText(fileName, (new JavaScriptSerializer()).Serialize(pSettings));
}
public static T Load(string fileName = DEFAULT_FILENAME)
{
T t = new T();
if(File.Exists(fileName))
t = (new JavaScriptSerializer()).Deserialize<T>(File.ReadAllText(fileName));
return t;
}
}
}