1

PC クラスで、継承された STR stat を設定している行でコンパイル エラーが発生します。取得するコンパイラ エラーは、「Entity.Stat には、2 つの引数を取るコンストラクターが含まれていません。基本 Entity クラスが初期化シーケンスで同じ宣言を行うため、これが当てはまらないことがわかりました。

誰かが私が間違っていることを確認することができれば、それは素晴らしいことです. StatType 項目は、別のファイルで宣言されている ENUM であり、問​​題なく動作しています。

class PC : Entity {

    private Class job;

    public PC(string name, Race race, Class job, int STR, int DEX, int CON, int WIS, int INT, int CHA){
        this.name = name;
        this.race = race;
        this.job = job;

        // This line here is the line giving me difficulties.
        this.STR = new Entity.Stat(STR, StatType.Strength);
    }

}

public class Entity
{
    protected string name;
    protected Race race;
    protected Stat STR;
    protected Stat DEX;
    protected Stat CON;
    protected Stat WIS;
    protected Stat INT;
    protected Stat CHA;

    public Entity(){ }

    public Entity(string name, Race race, int STR, int DEX, int CON, int WIS, int INT, int CHA){
        this.name = name;
        this.race = race;
        this.STR = new Stat(STR, StatType.Strength);
        this.DEX = new Stat(DEX, StatType.Dexterity);
        this.CON = new Stat(CON, StatType.Constitution);
        this.WIS = new Stat(WIS, StatType.Wisdom);
        this.INT = new Stat(INT, StatType.Intelligence);
        this.CHA = new Stat(CHA, StatType.Charisma);
    }

    private struct Stat
    {
        private int id;
        private int value;
        private int modifier;

        public Stat(int value, StatType id)
        {
            this.id = (int)id;
            this.value = value;
            this.modifier = ((value - 10) / 2);
        }

        public int Value
        {
            get
            {
                return this.value;
            }
            set
            {
                this.value = value;
                this.modifier = ((value - 10) / 2);
            }
        }

        public readonly int Modifier
        {
            get { return this.modifier; }
        }

    }
}
4

2 に答える 2