skaterby 66 Опубликовано 17 октября, 2014 И так, есть код using System; namespace ConsoleApplication2 { class Men { public string fam; public string Fam { get { return fam; } set { fam = value; } } } class Stud:Men { public int n; public string spec; public int god; public string Spec { get { return spec; } set { spec = value; } } public int God { get { return god; } set { god = value ;} } } class Program { static void Main() { int a=0; int n=10; Men[] obj= new Men[n]; Stud[] x = new Stud[n]; Console.WriteLine("1 - Добавить студента(-ов)"); Console.WriteLine("2 - поиск студента"); Console.WriteLine("3 - вывод студентов"); Console.WriteLine("4 - выход"); Console.WriteLine("*****************************"); a = Convert.ToInt32(Console.ReadLine()); switch (a) { case 1: Console.WriteLine(" ********* Добавление нового студента ********* "); Console.Write("Сколько будет студентов? "); n = Convert.ToInt32(Console.ReadLine()); if (n < 1) { Console.WriteLine("Необходимо ввести хотя бы одного студента"); }; for (int i = 1; i <= n; i++) { Console.WriteLine("Заполняем " + i + " студента"); Console.Write("Фамилия: "); obj.fam = Console.ReadLine(); Console.Write("Год рождения: "); x.god = Convert.ToInt32(Console.ReadLine()); Console.Write("Специальность: "); x.spec = Console.ReadLine(); Console.ReadKey(); } break; case 2: Console.WriteLine(" ********* Поиск студента ********* "); break; case 3: Console.WriteLine(" ********* Вывод всех студентов ********* "); if (n > 1) { for (int i = 0; i <= n; i++) { Console.WriteLine(obj.fam + " " + x.god + " " + x.spec); } } else Console.WriteLine("Список студентов пуст."); break; case 4: return; break; default: Console.WriteLine("Необходимо ввести число от 1 до 4"); break; } Console.ReadKey(); } } } При заполнении массива Ошибка 'Ссылка на объект не указывает на экземпляр объекта.' Ругается начиная от сюда obj.fam = Console.ReadLine(); Как решить проблему? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
fireday2 49 Опубликовано 29 марта, 2015 (изменено) Массив динамический, изменения размера массива нету Перед строкой for (int i = 1; i <= n; i++) Вставить Array.Resize<string>(ref obj, n); То же самое для массива "x" Изменено 29 марта, 2015 пользователем fireday2 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Blueeyer 66 Опубликовано 2 июня, 2015 Массив динамический, изменения размера массива нету Перед строкой for (int i = 1; i <= n; i++) Вставить Array.Resize<string>(ref obj, n); То же самое для массива "x" А проще вообще использовать списки. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты