C#对象数据存储在内部与文件中

时间:2015-11-01 02:01:16

标签: c# performance storage

我正在开发一款包含很多物品的游戏。我想知道在内部将对象数据存储在程序中是否更有效,或者从文件中加载项目列表。

实施例
[内部]:

Item sword = new Item();
sword.Damage = 40f;
sword.Value = 100;
Weapons.add(sword);

[外部]
items.txt

name:sword
damage:40  
value:100

LoadItems("items.txt");  

A认为在文件中存储对象数据可能意味着玩家可能会篡改或破坏文件,并且在IDE中添加新对象会更容易。一个比另一个更有效吗?

2 个答案:

答案 0 :(得分:2)

:一种。存储在记忆中

优点:

  1. 快速表现。
  2. 少验证。
  3. 缺点:

    1. 如果数据太大,应用程序会占用大量内存。
    2. 应用程序崩溃中的数据丢失。
    3. <强> B中。存储在文件

      优点:

      1. 不用担心数据大小。如果数据增长,应用程序几乎不会遇到内存问题。
      2. 如果应用程序崩溃,您可以从文件中获取数据。 (如果文件没有损坏)
      3. 缺点:

        1. 添加验证。
        2. 从文件中读取并解析。
        3. 在处理过程中添加异常处理。
        4. 这里您的主要因素是数据大小。如果它的小内存保存。如果它的大号保存在文件中。

答案 1 :(得分:0)

除了@Jigneshk所说的问题(这些都是很好的指南)之外,通常数据应该存储在程序之外(不是硬编码),硬编码数据将更难以开发游戏内容(例如,你必须在游戏中编写每一把剑的代码,而外部文件很容易在内容中增长(即使使用相同的程序,作为更新或mod),所以我建议将所有游戏内容(统计数据等)放在一个单独的file(检查结构化文件,如XML或JSON,甚至sqlite数据库都可以工作)

但是当然要记住存储速度较慢(因此在使用之前必须加载),并且您不应该读取所有数据,而是加载所需内容(一个级别)例如)