有没有办法将值初始化为特定值以外的内存地址?我有一个在启动时打开的 winform,我希望它可以保存用户以前的条目。我的(蹩脚的)想法是嵌入一个文本文件并将该文件中的值读取到相关变量中?有没有更专业/更清洁的方式来做我想做的事?
为了清楚起见,假设我有一个变量:string pet = "dog"
. 稍后在程序中用户会将这个值更改为"fish"
. 现在我想将该值存储在某处,并在发生断电事件时保留它,以便在程序重新启动时,该变量pet
将被初始化为存储的内存值,"fish"
.
有没有办法将值初始化为特定值以外的内存地址?我有一个在启动时打开的 winform,我希望它可以保存用户以前的条目。我的(蹩脚的)想法是嵌入一个文本文件并将该文件中的值读取到相关变量中?有没有更专业/更清洁的方式来做我想做的事?
为了清楚起见,假设我有一个变量:string pet = "dog"
. 稍后在程序中用户会将这个值更改为"fish"
. 现在我想将该值存储在某处,并在发生断电事件时保留它,以便在程序重新启动时,该变量pet
将被初始化为存储的内存值,"fish"
.
对象序列化是您正在寻找的。请参阅此处了解更多信息。
根据您的需要,有几种方法可以做到这一点。写入/读取文本文件是一种解决方案。
实现您想要的一个好方法是使用“设置”
配置后,您可以在代码中的用户或应用程序级别设置它们,如下所示:
Properties.Settings.Default.Pet = "dog";
Properties.Settings.Default.Save();
https://msdn.microsoft.com/en-us/library/aa730869(v=vs.80).aspx
执行此操作的常用方法是将其存储在注册表中。这是一个虽然有点旧的教程,但可以帮助您了解总体思路:
使用文本文件也没有错。请记住事物的安全方面。无论您将其存储在何处,都需要确保您具有写入权限。出于这个原因,一些应用程序使用位于应用程序根文件夹中的配置文件。使用注册表时还应考虑用户上下文。