如何在程序退出时保存变量值?
我试图使用ArrayList来存储可变数量的字符串,并想知道如何保存ArrayList及其元素,以便我的窗体可以在程序加载和退出之间调用它们的值。
我曾经将信息存储在文本文件中,但是如果可能的话,我希望避免使用外部文件。
感谢您提供的任何帮助。
您可以使用Properties.Settings保存ArrayList(如果不是ArrayList,则它们是其他等效类)。最好的部分是它允许您在应用程序和用户级别设置变量
在这里可以找到一个很好的例子如何使用Settigns https://www.codeproject.com/Articles/17659/How-To-Use-the-Settings-Class-in-C
我总是使用(在你的情况下在Winforms中的声音),Form_Closing存储到你事先创建的Properties.Settings变量。 如果它是ArrayList,您可以将其存储到XML或逗号分隔列表。 您的serizliation / deserialization方法将取决于您的数据。
看看隔离存储 。
我曾经将信息存储在文本文件中,但是如果可能的话,我希望避免使用外部文件。
在运行之间不可避免地存储数据将需要程序可执行文件之外的东西。
注册表可以工作,但注册表不适合存储任何超过少量信息。 添加文件可以使用数据库。
对于文本字符串,可以保存文本文件(每行1个一个字符串)并将其加载到单个语句中。 将文件放入隔离存储或%AppData%中的专用文件夹下会限制用户搞砸它的可能性。 2 。
// Load var theStrings = new ArrayList(); var path = GetSavePath(); if (File.Exists(path)) { theStrings.AddRange(File.ReadLines(path); } // Save: File.WriteAllLines(GetSavePath(), theStrings.ToArray());
这里使用ToArray()
作为ArrayList
不实现IEnumerable
( List
对于集合来说是更好的选择并避免这种情况)。
1这假设行尾在字符串内无效。 如果需要支持,则有许多选项。 一些文件格式用于通过另一种机制分隔字符串,或者最简单的方法是使用简单转换来转义字符(例如。 →
\
,换行符→ n
和回车→ r
n
)。
2如果没有明显的额外复杂性,使用类似服务的东西加载/保存为不同的用户,从而允许数据受ACL保护,则无法阻止这种情况。
上述就是C#学习教程:如何在程序退出时保存变量值?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1031307.html