コード例 #1
0
        private static void Clone(State[] state)
        //Клонирование коллекции
        {
            if (state[0] == null)
            {
                Console.ForegroundColor = ConsoleColor.DarkRed;
                Console.WriteLine("\n Коллекция пуста, операция невозможна.");
                Console.ForegroundColor = ConsoleColor.White;
            }
            else
            {
                Monarchy[] monarchy = ToMonarchy(state);

                Monarchy clone = new Monarchy();

                Console.ForegroundColor = ConsoleColor.Blue;
                Console.Write("Объект для поверхностного копирования: ");
                Console.ForegroundColor = ConsoleColor.White;
                monarchy[0].Show();
                Console.WriteLine("");

                Console.ForegroundColor = ConsoleColor.Blue;
                Console.Write("Объект для глубокого копирования: ");
                Console.ForegroundColor = ConsoleColor.White;
                monarchy[1].Show();
                Console.WriteLine("");

                Console.ForegroundColor = ConsoleColor.Blue;
                Console.Write("Поверхностное копирование: ");
                Console.ForegroundColor = ConsoleColor.White;
                clone = monarchy[0].SurfaceCopying();
                clone.Show();
                Console.WriteLine("");

                Console.ForegroundColor = ConsoleColor.Blue;
                Console.Write("Глубокое копирование: ");
                Console.ForegroundColor = ConsoleColor.White;
                clone = (Monarchy)monarchy[1].Clone();
                clone.Show();
                Console.WriteLine("");

                Console.Write("\n  " + end);
            }
        }
コード例 #2
0
        private static void FindState(StateInterface[] state)
        //Поиск объекта в коллекции
        {
            Array.Sort(state, new SortByGDP());

            bool ok = true;

            while (ok)
            {
                int index;
                int choice = LiveMenu.Menu(headlines[1], search);
                switch (choice)
                {
                case 0:
                    Monarchy monarchy = new Monarchy();
                    monarchy.Input();

                    index = Array.BinarySearch(state, monarchy);
                    try
                    {
                        Monarchy tmp = state[index] as Monarchy;
                        Console.ForegroundColor = ConsoleColor.Cyan;
                        Console.Write("\n  Искомый объект: ");
                        Console.ForegroundColor = ConsoleColor.White;
                        Console.WriteLine();
                        tmp.Show();
                        Console.WriteLine();
                        Console.Write("\n  Номер объекта в коллекции: {0}", index + 1);
                        Console.WriteLine();
                    }
                    catch
                    {
                        Console.ForegroundColor = ConsoleColor.Cyan;
                        Console.Write("\n  Искомый объект: ");
                        Console.ForegroundColor = ConsoleColor.White;
                        Console.WriteLine();
                        monarchy.Show();
                        Console.ForegroundColor = ConsoleColor.DarkRed;
                        Console.Write("\n Отсутствует в коллекции.");
                        Console.ForegroundColor = ConsoleColor.White;
                        Console.WriteLine();
                    }

                    Console.Write("\n" + end);
                    Console.ReadLine();
                    break;

                case 1:
                    Kingdom kingdom = new Kingdom();
                    kingdom.Input();

                    index = Array.BinarySearch(state, kingdom);
                    try
                    {
                        Kingdom tmp = state[index] as Kingdom;
                        Console.ForegroundColor = ConsoleColor.Cyan;
                        Console.Write("\n  Искомый объект: ");
                        Console.ForegroundColor = ConsoleColor.White;
                        Console.WriteLine();
                        tmp.Show();
                        Console.WriteLine();
                        Console.Write("\n  Номер объекта в коллекции: {0}", index + 1);
                        Console.WriteLine();
                    }
                    catch
                    {
                        Console.ForegroundColor = ConsoleColor.Cyan;
                        Console.Write("\n  Искомый объект: ");
                        Console.ForegroundColor = ConsoleColor.White;
                        Console.WriteLine();
                        kingdom.Show();
                        Console.ForegroundColor = ConsoleColor.DarkRed;
                        Console.Write("\n Отсутствует в коллекции.");
                        Console.ForegroundColor = ConsoleColor.White;
                        Console.WriteLine();
                    }

                    Console.Write("\n" + end);
                    Console.ReadLine();
                    break;

                case 2:
                    Republic republic = new Republic();
                    republic.Input();

                    index = Array.BinarySearch(state, republic);
                    try
                    {
                        Republic tmp = state[index] as Republic;
                        Console.ForegroundColor = ConsoleColor.Cyan;
                        Console.Write("\n  Искомый объект: ");
                        Console.ForegroundColor = ConsoleColor.White;
                        Console.WriteLine();
                        tmp.Show();
                        Console.WriteLine();
                        Console.Write("\n  Номер объекта в коллекции: {0}", index + 1);
                        Console.WriteLine();
                    }
                    catch
                    {
                        Console.ForegroundColor = ConsoleColor.Cyan;
                        Console.Write("\n  Искомый объект: ");
                        Console.ForegroundColor = ConsoleColor.White;
                        Console.WriteLine();
                        republic.Show();
                        Console.ForegroundColor = ConsoleColor.DarkRed;
                        Console.Write("\n Отсутствует в коллекции.");
                        Console.ForegroundColor = ConsoleColor.White;
                        Console.WriteLine();
                    }

                    Console.Write("\n" + end);
                    Console.ReadLine();
                    break;

                case 3:
                    ok = false;
                    break;
                }
            }
        }