Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.05.2011, 03:18   #1
CodeNOT
Форумчанин
 
Аватар для CodeNOT
 
Регистрация: 08.11.2010
Сообщений: 593
По умолчанию Ошибка при обращении к объекту

Добрый день, у меня возникла проблема при добавлении в массив объектов. Не могли бы мне казать, в чем я "мудак"(модераторы извините за грубость):
Код:
   int Menu = 0;
            Person [] person;
            person = new Person [4];
            int Total_number = 0;
            while (Menu != 3)
            {
                System.Console.WriteLine("1:Добавить 2: Печать 3: Выход ");
                System.Console.Write("Введите команду[1..3]: ");
                Menu = Convert.ToInt32(System.Console.ReadLine());
                switch (Menu)
                {
                    case 1:
                        System.Console.Write("Введите имя: ");
                        string insert_name = System.Console.ReadLine();
                        System.Console.Write("Введите фамилию: ");
                        string insert_surname = System.Console.ReadLine();
                        System.Console.Write("Введите отчество: ");
                        string insert_thirdname = System.Console.ReadLine();
                        System.Console.Write("Введите возраст: ");
                        int insert_age = Convert.ToInt32(System.Console.ReadLine());
                        person[Total_number].Work_Name = insert_name;
                        person[Total_number].Work_Surname = insert_surname;
                        person[Total_number].Work_ThirdName = insert_thirdname;
                        person[Total_number].Work_Age = insert_age;
                        Total_number++;
                        break;
                    case 2:
                        for(int i=0;i<Total_number;i++)
                        {
                            System.Console.WriteLine("Имя: {0} Фамилия: {1} Отчество: {2} Возраст: {3}", person[i].Work_Name, person[i].Work_Surname, person[i].Work_ThirdName, person[i].Work_Age.ToString());
                        }
                        break;
                }
собственно вылетает на добавлении
CodeNOT вне форума Ответить с цитированием
Старый 28.05.2011, 03:26   #2
CodeNOT
Форумчанин
 
Аватар для CodeNOT
 
Регистрация: 08.11.2010
Сообщений: 593
По умолчанию

Попробовал сделать так, все заработало, но может есть более логичный способ:
Код:
 int Menu = 0;
            Person [] person;
            person = new Person[4];
            int Total_number = 0;
            while (Menu != 3)
            {
                System.Console.WriteLine("1:Добавить 2: Печать 3: Выход ");
                System.Console.Write("Введите команду[1..3]: ");
                Menu = Convert.ToInt32(System.Console.ReadLine());
                switch (Menu)
                {
                    case 1:
                        System.Console.Write("Введите имя: ");
                        string insert_name = System.Console.ReadLine();
                        System.Console.Write("Введите фамилию: ");
                        string insert_surname = System.Console.ReadLine();
                        System.Console.Write("Введите отчество: ");
                        string insert_thirdname = System.Console.ReadLine();
                        System.Console.Write("Введите возраст: ");
                        int insert_age = Convert.ToInt32(System.Console.ReadLine());
                        person[Total_number] = new Person();
                        person[Total_number].Work_Name = insert_name;
                        person[Total_number].Work_Surname = insert_surname;
                        person[Total_number].Work_ThirdName = insert_thirdname;
                        person[Total_number].Work_Age = insert_age;
                        Total_number++;
                        break;
                    case 2:
                        for(int i=0;i<Total_number;i++)
                        {
                            System.Console.WriteLine("Имя: {0} Фамилия: {1} Отчество: {2} Возраст: {3}", person[i].Work_Name, person[i].Work_Surname, person[i].Work_ThirdName, person[i].Work_Age.ToString());
                        }
                        break;
                }
            }
CodeNOT вне форума Ответить с цитированием
Старый 28.05.2011, 09:19   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
person[Total_number] = new Person();
всегда надо.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 28.05.2011, 12:47   #4
CodeNOT
Форумчанин
 
Аватар для CodeNOT
 
Регистрация: 08.11.2010
Сообщений: 593
По умолчанию

это я понял, просто давно с объектами не работал)
CodeNOT вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при присвоении объекту производного класса объекта базового класса с исп. явного приведения типов Lanx Помощь студентам 0 06.04.2011 20:24
Ошибка при обращении к реестру OLE. В чем причина? ILYA_SAKHA БД в Delphi 3 09.06.2010 04:02
при обращении с одной формы на другую вылетатет ошибка cowboy Общие вопросы Delphi 21 04.09.2009 14:25
Ошибка пр обращении к макросу tae1980 Microsoft Office Excel 3 04.04.2009 14:38
Ошибка при обращении к интернет странице Alter Свободное общение 2 06.08.2008 22:25