.NET - Не могу разобраться с конструктором по-умолчанию

Ответить
Аватара пользователя
Tonny_Bennet

.NET - Не могу разобраться с конструктором по-умолчанию

Сообщение Tonny_Bennet »

Здравствуйте.



Есть класс у которого есть конструктор по-умолчанию:





Код:

Код: Выделить всё

 public class Rel
    {
        public enum state
        {
            _0,
            _1,
        }
        private state _state;
       public state State
        {
            get { return _state; }
            set { _state = value; }
        }
       public Rel()
        {
            _state = state._0;
        }
    }

Есть другой класс, полем которого является массив элементов первого класса, и у него тоже есть конструктор по-умолчанию:





Код:

Код: Выделить всё

   public class Module
    {
        private Rel[] _rel;
        public Rel[] rel
        {
            get { return _rel; }
            set { _rel = value; }
        }
       public Module()
        {
          _rel = new Rel[5];
        }

Потом я отдельно создаю элемент первого класса и элемент второго.



Rel rl = new Rel()



Module mod = new Module();



Первый элемент rl как положено создаётся и у него есть единственное поле State равное "_0". Второй элемент также создаётся с одним полем массивом. Но каждый элемент этого массива равен null. А хотелось изначально, что б был массив из 5 элементов первого класса с полем State равным "_0"



Подскажите пожалуйста почему так происходит и как это исправить.
Аватара пользователя
Beyound

Re: .NET - Не могу разобраться с конструктором по-умолчанию

Сообщение Beyound »

это потому что ты написал _rel = new Rel[5]; что в переводе на русский значит - "дай этой переменной место в памяти размером в 5 элементов типа Rel". тебе нужно дописать чему эти элементы равны скажем сделав так _rel = new Rel[5]{new Rel(), new Rel(), new Rel(), new Rel(), new Rel()}; это и вызовет конструкторы
Аватара пользователя
Tonny_Bennet

Re: .NET - Не могу разобраться с конструктором по-умолчанию

Сообщение Tonny_Bennet »

В принципе понятно и мысли подобные были. А чуть более элегантный код решения этой проблемы существует? Просто я представил только часть класса... и там есть место с 18 элементами Изображение



Медленно но верно в голову пробирается идея создать метод, который будет возвращать массив элементов класса.
Аватара пользователя
Tonny_Bennet

Re: .NET - Не могу разобраться с конструктором по-умолчанию

Сообщение Tonny_Bennet »

ferget, спасибо. Т.к. ничего лучше не нашлось сделал так





Код:

Код: Выделить всё

         _rel = new Rel[5];
          for (int i = 0; i 
Ответить

Вернуться в «Программирование и базы данных»