如何储存(保存)一个变量,以便在关闭并再次运行程序后使用它?我无法使用saveFileDialog,因为它是2D数组。其他程序有其自己的扩展名。我也可以自己做扩展吗?像“将项目另存为...”。另存为项目
Q
另存为项目
0
A
回答
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
.NET
中有不同的排列类型。每个人都有其优点和缺点。所以你应该选择一个最适合你的需求。 这是值得花时间,至少得到这些的一般概述。
例如:
最常见的方法是二进制序列化(通过svick提供的),它速度快,低内存占用,但它绝对不够灵活,其他人在可扩展性方面。原因 标准.NET
序列化也保存类型信息,这导致与类型保存并且不仅数据的韧性耦合。
在一个前面回答很难解释一切,所以我建议你看看这里
Serialization and Types of Serialization in .Net
好运
相关问题
- 1. c#WebApplication另存为目录
- 2. 将项目保存为.ipa
- 3. 禁用“目标另存为”,在右键菜单选项
- 4. 添加项目作为另一个项目的参考
- 5. 上传文件时另存为选项
- 6. Subversion:如何将项目的单独版本保存为另一个项目的子目录
- 7. 保存项目
- 8. MS Project 2007将项目保存为项目2010-2013
- 9. 导入GitHub的项目为已经存在的Git项目
- 10. 使用parcelable将项目存储为sharedpreferences?
- 11. 为C#创建可保存的“项目”
- 12. 为XCode项目设置存储库
- 13. Eclipse paho mqtt C++作为另一个项目的依赖项
- 14. 添加另一个项目的子目录作为子树
- 15. 更新从另一项目
- 16. 从另一个项目
- 17. 从另一个项目
- 18. 在另一个项目
- 19. 引用另一个项目?
- 20. 从另一个项目
- 21. 引用另一个项目
- 22. 动态另一个项目
- 23. 在另一个项目的目录下移动gitlab项目
- 24. 另一个将git项目拆分为多个子项目的用例
- 25. 如何使用T4将类从一个项目转换为另一个项目?
- 26. 如何使用MSBuild将另一个项目导出为Visual Studio模板项目?
- 27. 另一个子项目作为依赖编译gradle这个子项目
- 28. 如何在android studio的另一个项目中使用项目作为模块
- 29. 在另一个Android项目采用了Android库项目为瓶重复使用
- 30. 如何在android中的另一个项目中使用项目作为库api?
不能保存的变量。 – idish 2012-04-07 11:41:17
@idish - 那该怎么做? – 2012-04-07 11:43:24
为防万一您不知道(因为您询问了有关'制作'的扩展名),文件扩展名只是所使用格式的_indicators_,这样Windows资源管理器就可以更轻松地打开它,并且您可以根据自己的需要实际命名它们。如果我没有记错,Adobe的.AI格式是PDF。为文件分配自己的扩展名只是为了将其与您的程序关联起来,即使它实际上只是一个文本文件或其他东西,也是有用的。 – 2012-04-07 12:40:39