2

私は抽象クラス「建物」を持っています:

public abstract class Building {
abstract public int ID {get;}
abstract public string name {get;}
}

クラス (たとえば) 本社 : 建物には、これらのゲッター メソッドとセッター メソッドの変数があります。問題は、すべてのサブクラスに書き込む必要があることです

private int _ID = 1;
public int ID {
    get {return _ID;}
}

たとえば、変数を設定するだけで済むように、抽象クラスで先のような1つのゲッターセッターメソッドを作成してコードを保存する方法はありますか? 助けてくれてありがとう。

4

2 に答える 2

5

プロパティを抽象化する代わりに、セッターを保護するか、コンストラクターで設定できるようにすることができます。

public abstract class Building 
{
    // Optional constructor
    protected Building(int id, string name)
    {
         this.ID = id;
         this.Name = name;
    }

    public int ID { get; protected set; }
    public string Name { get; protected set; }
}

これにより、実装が基本クラスに移動されますが、サブクラスのみがそれらの値を設定できます。

于 2013-05-28T23:10:18.137 に答える