0

如何存储(保存)变量,以便在关闭并再次运行程序后可以使用它?我不能使用 saveFileDialog 因为它是二维数组。其他程序有自己的扩展名。我也可以自己做扩展吗?诸如“将项目另存为...”之类的东西。

4

2 回答 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序列化也保存了类型信息,这导致与实际保存的类型的强耦合,而不仅仅是数据。

一个答案很难解释一切,所以我建议你看这里

.Net 中的序列化和序列化类型

祝你好运

于 2012-04-07T12:08:43.247 回答