【发布时间】:2015-09-30 00:20:14
【问题描述】:
假设我有这样的代码
public class Holded
{
protected internal int holdedID = 0;
}
public class Inventory : Holded
{
public Inventory() { }
public void changeHoldedID()
{
this.holdedID = 100;
}
}
public class Equipment : Holded
{
public Equipment() { }
public void writeHoldedID()
{
Console.WriteLine("Holded ID is: {0}!", this.holdedID);
}
}
public class Cargo : Holded
{
public Cargo() { }
}
如果我调用 changeHoldedID 然后 writeHoldedID,控制台仍会输出一个字符串,如“Holded ID is: 0!”。现在我想要实现的是在两个类中都有相同的基类(Holded)。因此,如果我从 Inventory 更改holdedID,Equipment 的 writeHoldedID 函数将输出“Holded ID is: 100!”。谢谢和问候!
@Edit:更详细:我有一个游戏。每个人都是一个角色,拥有设备、库存和货物类。每个类包含大约 20 个“项目”插槽。现在的问题是,如果你试图移动一个项目,例如。从库存到设备,并且有这样的物品索引,然后该物品被“交换” - 被持有,现在我可以将这种持有的物品放入设备,库存或货物中。这就是为什么我需要在 Eq/Inv/Cargo 之间共享此类。
【问题讨论】:
-
听起来你只是想让
Holded实现 2 个不同的接口,也许这是一个更好的方法?
标签: c# inheritance