如何存储(保存)变量,以便在我关闭并再次运行程序后可以使用它?我不能使用saveFileDialog,因为它是2D数组。其他程序有自己的扩展。我也可以进行自己的扩展吗?像“将项目另存为......”之类的东西。
答案 0 :(得分:1)
如果要将某些对象保存到磁盘,则需要为数据设计一些文件格式,或者使用现有的一般文件格式。
在.Net中,最简单的方法是使用the binary formatter来执行此操作:
void Save(SomeType obj, string fileName)
{
using (var stream = File.OpenWrite(fileName))
{
var formatter = new BinaryFormatter();
formatter.Serialize(stream, obj);
}
}
obj
对象及其引用的所有对象必须是可序列化的。大多数原始类型已经是可序列化的,您可以使用the [Serializable]
attribute将您自己的类型序列化。
Load()
方法类似,但会使用File.OpenRead()
和formatter.Deserialize()
。
如何选择文件名取决于您,但您当然可以使用SaveFileDialog
。
答案 1 :(得分:1)
.NET
中提供了不同的sirialization类型。他们每个人都有其优点和缺点。因此,您应该选择最适合您需求的产品。
值得花些时间并至少对这些内容进行总体概述。
例如:
最常见的方法是二进制序列化(由svick提供),它速度快且内存占用少,但在可伸缩性方面肯定不如其他方法灵活。原因
标准.NET
序列化也会保存类型信息,这会导致与实际类型保存的紧密耦合,而不仅仅是数据。
在一个anwer中很难解释所有内容,所以我建议你看看这里
祝你好运