我最近开始学习一些C#并写了一个Yahtzee克隆.我的下一步(现在游戏逻辑就位并正常运行)是整合一些方法来保持所有游戏的统计数据.
我的问题是,我应该如何存储这些信息?我的第一个想法是使用数据库,我感觉这就是我得到的答案......如果是这样的话,你能指出我从C#应用程序创建和访问数据库的良好资源吗?
存储在XML文件中实际上对我来说更有意义,但我想如果我建议我会被撕裂;).我习惯于构建Web应用程序,对于那些,文本文件通常不受欢迎.
那么,使用XML文件,我应该看哪些类可以轻松操作?
这是一个想法:使用Xml序列化.设计您的GameStats数据结构,并可选择使用Xml属性来影响架构.我喜欢将这种方法用于小型数据集,因为它快速简便,我需要做的就是设计和操作数据结构.
using (FileStream fs = new FileStream(....)) { // Read in stats XmlSerializer xs = new XmlSerializer(typeof(GameStats)); GameStats stats = (GameStats)xs.Deserialize(fs); // Manipulate stats here ... // Write out game stats XmlSerializer xs = new XmlSerializer(typeof(GameStats)); xs.Serialize(fs, stats); fs.Close(); }
对于类似这样的事情,数据库可能会有点过分 - 首先将您的信息存储在XML文档(或一系列XML文档中,如果有大量数据).你得到了所有那些漂亮的XCopy部署内容,你仍然可以使用LINQ,如果你后来确定你真的需要高性能的关系查询逻辑,它将是一个平滑过渡到数据库.
数据库可能过度 - 您是否考虑过将分数存储在文件中?
如果您决定使用数据库,可以考虑使用SQLite,它可以像文件一样分发.有一个开源的.NET提供程序--System.Data.SQLite - 包含了入门所需的一切.
在.NET中访问和读取数据库非常容易 - 请查看此问题以获取示例代码.