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