static void Main(string[] args) { ReminderItem[] rm = new ReminderItem[3]; rm[0] = new ReminderItem(DateTimeOffset.Parse("2019-09-01"), "Первый месяц осени"); rm[1] = new PhoneReminderItem("123456", DateTimeOffset.Parse("2019-10-01"), "Второй месяц осени"); rm[2] = new ChatReminderItem("Чат об осени", "dabramov", DateTimeOffset.Parse("2019-11-01"), "Третий месяц осени"); foreach (ReminderItem ri in rm) { ri.WriteProperties(); Console.WriteLine(); } Console.ReadKey(); }
static void Main(string[] args) { ReminderItem[] rm = new ReminderItem[3]; rm[0] = new ReminderItem(DateTimeOffset.Parse("2019-09-01"), "Первый месяц осени"); rm[1] = new PhoneReminderItem("123456", DateTimeOffset.Parse("2019-10-01"), "Второй месяц осени"); rm[2] = new ChatReminderItem("Чат об осени", "dabramov", DateTimeOffset.Parse("2019-11-01"), "Третий месяц осени"); //foreach (ReminderItem ri in rm) //{ // ri.WriteProperties(); // Console.WriteLine(); //} //демонстрация работы присваивания объекту базового класса //объектов производных классов ChatReminderItem CRI1 = new ChatReminderItem("Чат о зиме", "dabramov", DateTimeOffset.Parse("2019-12-01"), "Первый месяц зимы"); //создаем копию, реально копию, а не другую ссылку на тот же объект ChatReminderItem CRI2 = new ChatReminderItem(CRI1); //вывод перед внесением изменением CRI1.WriteProperties(); Console.WriteLine(); CRI2.WriteProperties(); Console.WriteLine(); //вносим изменения CRI2.AlarmDate = DateTimeOffset.Parse("2019-12-02"); CRI2.AlarmMessage = "Второй месяц зимы"; //вывод после внесения изменением CRI1.WriteProperties(); Console.WriteLine(); CRI2.WriteProperties(); //в выводе видим, что изменились поля объекта CRI2, и неизменились поля объекта CRI1 Console.ReadKey(); }
static void Main(string[] args) { DateTimeOffset dateTime; string message, phoneNumber, chatName, accountName; Console.Write("Введите количество напоминаний:"); long amountOfReminders = long.Parse(Console.ReadLine()); ReminderItem reminder; List <ReminderItem> reminders = new List <ReminderItem>(); byte reminderType = 0; for (int i = 0; i < amountOfReminders; i++) { Console.WriteLine($"Введите номер типа напоминания №: {i + 1} " + "\n1 - обычное напоминание;" + "\n2 - напоминание для чата;" + "\n3 - напоминание для телефона"); try { reminderType = byte.Parse(Console.ReadLine()); switch (reminderType) { case 1: case 2: case 3: break; default: throw new Exception("Выбран несуществующий тип напоминания!"); } Console.Write($"Введите время напоминания №{i + 1}: "); dateTime = DateTimeOffset.Parse(Console.ReadLine()); Console.Write($"Введите сообщение напоминания №{i + 1}: "); message = Console.ReadLine(); switch (reminderType) { case 1: reminder = new ReminderItem(message, dateTime); reminders.Add(reminder); break; case 2: Console.Write("Введите название чата: "); chatName = Console.ReadLine(); Console.Write("Введите название аккаунта: "); accountName = Console.ReadLine(); reminder = new ChatReminderItem(message, dateTime, chatName, accountName); reminders.Add(reminder); break; case 3: Console.Write("Введите номер телефона: "); phoneNumber = Console.ReadLine(); reminder = new PhoneReminderItem(message, dateTime, phoneNumber); reminders.Add(reminder); break; } } catch (Exception e) { Console.WriteLine($"Ошибка {e.Message}, попробуйте еще раз!"); i--; continue; } } for (int i = 0; i < amountOfReminders; i++) { Console.WriteLine($"Напоминание №{i + 1}:"); reminders[i].WriteProperties(); } }