![](/img/trans.png)
[英]How can I get a list of all methods in a certain class from c++ in mono?
[英]How can I make a list of a certain class, but still allow extensions of the class to be allowed in the list with all of their parameters C#
因此,我正在编写一个用于统一C#的项目系统,并且具有针对不同类型的项目扩展的该基础项目类,例如,我将扩展该基础类并添加一个用于攻击和攻击速度的变量,以及一个用于进攻武器类。
但是我的问题是我正在为物品编写数据库,我想将这些不同的类存储到一个大列表中,但是当我列出基本物品列表并传递武器物品时,它会切断攻击功能,攻击变量,并且基本上将武器项目变成了基础项目,使其无用。
如果您喜欢RDBMS,而不是像SledgeHammer建议的那样使用NOSQL,那么您可能会在这里找到答案。
在关系数据库中,有两种主要的实现方法,这就是最常见的数据库系统。
对于每种类型的项,您可以有不同的表,因此, Weapon
有一个表, Potion
有另一个表, Item
表是(Name, Type, Id)
元组的列表,告诉您要在哪个表中查看哪个项以获得其确切的细节。 每个类别的项目都需要一个表,但是如果您小心一点,则只需要几个表。
有一个Item
表,该表再次存储Item Type。 您还有一个“属性”表,该表具有列ItemId, Attribute, Value
因此,如果您的剑速度为5,伤害为10,并且药水可以恢复3,则您将获得以下行
Item ==== Id | Name | Category 1 | "Sword" | "weapon" 2 | "Healing Potion" | "potion" Attribute ========= ItemId | Attribute | Value 1 | "speed" | 5 1 | "damage" | 10 2 | "healing" | 3
然后由您决定是否要join
ItemId,然后将行pivot
到列中并转换为项目的类。
或者您可以使用基于文档的数据库,如其他答案所建议的那样。
听起来好像您想使用文档存储而不是RDBS。 RDBS要求表中的所有项目均为同一类型。 缺点是您最终得到一堆NULL列,这些类型的NULL并不包含所有使所有事情变得曲折的列。 文档存储区没有架构,因此您仅具有与类型相关的属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.