我有一个角色扮演游戏的类结构,看起来像这样......
public abstract class Item
{
public abstract string Name { get; set; }
}
public abstract class Armor : Item
{
public override string Name { get; set; }
}
public class Helmet : Armor
{
public override string Name { get; set; }
}
基本上,我试图强制每个派生类型包含一个“名称”属性。这是最好的方法吗?我知道我可以从 Item.Name 中删除“抽象”,然后删除 Armor 和 Helmet 中覆盖的“名称”属性。如果我这样做,代码看起来会更干净一些,但我可能会忘记在这些派生类中设置 base.Name。
有人可以帮我看看最好的方法吗?
编辑:对不起,让我再澄清一下我的问题。我想确定两件事。1)名称属性存在于所有派生类中 2)名称属性不为空或为空
我基本上想强制从 Item 派生的任何类(并且不是抽象的)具有 Name 的值。