C#对象数据存储在内部vs文件中
我正在做一个有很多物品的游戏。我想知道在我的程序内部存储对象数据或者从文件中加载项目列表是否更有效 示例C#对象数据存储在内部vs文件中,c#,performance,storage,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"); 有一个想法是,将对象数据存储在文件中可能意味着玩家可能会篡改
[内部]:
Item sword = new Item();
sword.Damage = 40f;
sword.Value = 100;
Weapons.add(sword);
[外部]items.txt
name:sword
damage:40
value:100
LoadItems("items.txt");
有一个想法是,将对象数据存储在文件中可能意味着玩家可能会篡改或损坏文件,在IDE中添加新对象会更容易。一个比另一个效率高吗?A.存储在内存中 优点:
这里的主要因素是数据大小。如果它很小,请保存在内存中。如果它很大,请将其保存在文件中。通常数据应该存储在程序之外(而不是硬编码),除了@Jigneshk所说的问题(这些都是很好的指南),硬编码数据将使游戏内容的开发变得更困难(例如,你必须对游戏中的每把剑进行编码),而外部文件可能很容易增长(即使使用相同的程序,如更新或修改)在内容中,因此我建议将所有游戏内容(统计数据等)放在单独的文件中(检查XML或JSON等结构化文件,即使是sqlite数据库也可以工作)
但当然要记住,存储速度较慢(因此在使用之前必须先加载),而且不应读取所有数据,而应加载所需的数据块(例如一个级别)…正如您所指出的,这两种方法都有很多优点和缺点-实际上,您可以决定哪种方法更适合特定项目。旁注:从安全角度来看,代码和数据存储在用户机器上时没有太大区别。