我有一个类Item
:继承成员的新属性
public class Item
{
public int ID { get; private set; }
public int Value { get; private set; }
public Item CachedReference
{
get
{
return Server.Instance.Data.Items[this.ID];
}
}
public Item(int id)
{
this.ID = id;
this.Value = this.CachedReference.Value;
}
}
我有一个类Equip
从Item
派生:
public sealed class Equip : Item
{
public new Equip CachedReference
{
get
{
return Server.Instance.Data.Equips[this.ID];
}
}
}
public Equip(int id) : base(id) { }
当我打电话:
Equip equip = new Equip(id);
Item
base的构造函数将使用CachedReference
财产Item
,而不是新的CachedReference
财产Equip
。我该如何做到这一点,如果我初始化类型为Equip
的对象,基地Item
类将使用CachedReference
值Equip
而不是Item
?
通过建立在'Equip'一个新的构造函数调用一个新的,无参数的构造函数基地这什么也不做,或者使用'virtual'和'而是override' 'new'。你有什么尝试? – CodeCaster
@CodeCaster问题是因为'Equip'派生自'Item',它也需要'Value'属性。因此我希望基类能够获得基本的值。 –
@CodeCaster我没有使用虚拟方法,并用'Equip'覆盖它,但我希望'CachedReference'返回'Equip'类型而不是'Item',所以我不必将其转换到我的构造函数中。 –