如何儲存(保存)一個變量,以便在關閉並再次運行程序後使用它?我無法使用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. 禁用「另存爲」選項
- 2. 「另存爲...」菜單項
- 3. c#WebApplication另存爲目錄
- 4. 將項目保存爲.ipa
- 5. 無法「另存爲」或複製C#項目
- 6. 從Feed中獲取5個項目並另存爲新文件
- 7. 禁用「目標另存爲」,在右鍵菜單選項
- 8. 如何爲另一個項目調用項目類?
- 9. 在另一個項目中包含Maven項目作爲插件?
- 10. 爲什麼我的項目調用另一個項目代碼?
- 11. 添加項目作爲另一個項目的參考
- 12. Maven項目爲「插件」的另一個Maven項目
- 13. 上傳文件時另存爲選項
- 14. KineticJS JavaScript另存爲FileSystem選項
- 15. Subversion:如何將項目的單獨版本保存爲另一個項目的子目錄
- 16. 保存項目
- 17. 如何保存列表視圖項目作爲高亮項目
- 18. MS Project 2007將項目保存爲項目2010-2013
- 19. 如何將存在的Java項目轉換爲Maven項目?
- 20. 如何從另一個存儲在SVN中的項目創建項目?
- 21. 禁用保存爲TFS工作項目
- 22. 爲C#創建可保存的「項目」
- 23. 爲Java項目設置暫存過程
- 24. 使用parcelable將項目存儲爲sharedpreferences?
- 25. 爲XCode項目設置存儲庫
- 26. Eclipse paho mqtt C++作爲另一個項目的依賴項
- 27. 添加另一個項目的子目錄作爲子樹
- 28. 保存項目和項目組
- 29. 從另一個項目
- 30. 更新從另一項目
不能保存的變量。 – 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