public override bool Equals(object r) { СредаПрограммирования z = (СредаПрограммирования)r; if (z.name == this.name && z.year == this.year && z.type == this.type) { return(true); } else { return(false); } }
static void Main(string[] args) { Console.Write("Введите N = "); int N = int.Parse(Console.ReadLine()); ПрограммныйПродукт[] R = new ПрограммныйПродукт[N]; int[] n = new int[N]; for (int i = 0; i < N; i++) { link5 : Console.WriteLine("Выбирите тип программного продукта: " + (i + 1) + " : \n\t1.Архиватор\n\t2.Среда программировани\n\t3.Текстовый редакто\n"); int x = int.Parse(Console.ReadLine()); switch (x) { case 1: R[i] = new Архиватор(); Console.WriteLine("Введите данные о архиваторе " + (i + 1) + " :"); R[i].Input(); n[i] = 1; break; case 2: R[i] = new СредаПрограммирования(); Console.WriteLine("Введите данные о среде прог. " + (i + 1) + " :"); R[i].Input(); n[i] = 2; break; case 3: R[i] = new ТекстовыйРедактор(); Console.WriteLine("Введите данные о текстовом редакторе " + (i + 1) + " :"); R[i].Input(); n[i] = 3; break; default: Console.WriteLine("Некорректное значение!"); goto link5; } } for (; ;) { Console.WriteLine("Сравнение объектов"); Console.WriteLine("Введите номера объектов одного типа для сравнения :\n"); Console.WriteLine("Введите первый объект :\n"); int i1 = int.Parse(Console.ReadLine()); Console.WriteLine("Введите второй объект :\n"); int i2 = int.Parse(Console.ReadLine()); if (n[i1 - 1] == n[i2 - 1]) { if (R[i1 - 1].Equals(R[i2 - 1]) == true) { Console.WriteLine("Объекты равны"); } else { Console.WriteLine("Объекты не равны"); } break; } else { Console.WriteLine("Различные типы объектов, сравнение невозможно!"); } } Console.ReadKey(); }