Коллекция объектов не меняется при изменении самих объектов C#

Есть структура которая хранит в себе несколько объектов и массив этих объектов (Сделал массив чтобы можно было быстро перебрать все значения)

 public struct Stats : ICloneable
    {
        public AStat hp;
        public AStat stamina;
        public AStat meleeAtk;
        public AStat meleeDef;
        //массив полей
        public AStat[] AllStats;
        //конструктор
        public BrotherStats(string lol)
        {
            hp = new hpC();
            stamina = new staminaC();
            meleeAtk = new meleeAtkC();
            meleeDef = new meleeDefC();;
            AllStats = new IStat[8] { hp, stamina, meleeAtk, meleeDef };
        }
    }

Проблема в том, что когда мне стало необходимым считать значения не из самих полей, а из массива, оказалось что в массиве все значения по умолчанию, а не те что хранят в себе поля. Эти поля представляют собой экземпляры класса, а насколько я знаю классы - это ссылочные типы, так что при изменении их экземпляров должны меняться и их значения в массиве. Или я не прав? И ещё, может ли мне здесь помочь интерфейс IEnumetator/IEnumerable вместо массива полей?


Ответы (1 шт):

Автор решения: Igor

Вы неправильно унаследовали классы hpC, staminaC, meleeAtkC, meleeDefC от класса AStat.

→ Ссылка