【发布时间】:2011-01-10 14:39:11
【问题描述】:
我有一个角色扮演游戏的类结构,看起来像这样......
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) Name 属性不为 null 或为空
我基本上想强制从 Item 派生的任何类(并且不是抽象的)具有 Name 的值。
【问题讨论】:
标签: c# abstract-class derived-class