私はこのようなロールプレイングゲームのクラス構造を持っています...
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 から "abstract" を削除してから、アーマーとヘルメットの上書きされた "Name" プロパティを削除できることを知っています。これを行うと、コードは少しきれいに見えますが、これらの派生クラスで base.Name を設定するのを忘れる可能性があります。
誰かがこれを行うための最良の方法を教えてくれますか?
編集:申し訳ありませんが、私の質問をもう少し明確にさせてください。2点確認したい。1) Name プロパティがすべての派生クラスに存在する 2) Name プロパティが null または空ではない
私は基本的に、Item から派生した (抽象ではない) クラスに Name の値を持たせたいと考えています。