//Заполнить первоначально несколькими объектами public WorkersAr() { Worker[0] = new TimeEmployee("Frank Zappa", 19, 3000, 40000, "111-11-1111", 5); Worker[1] = new FixedEmployee("Jill", 34, 3002, 100000, "111-12-1119", 800); Worker[2] = new TimeEmployee("Chucky", 50, 92, 100000, "333-23-2322", 9); Worker[3] = new FixedEmployee("Fran", 43, 93, 3000, "932-32-3232", 6010); }
static void Main(string[] args) { Console.WriteLine("***** The Employee Class Hierarchy *****\n"); // Give each employee a bonus? TimeEmployee chucky = new TimeEmployee("Chucky", 50, 92, 100000, "333-23-2322", 9); chucky.GiveBonus(300); chucky.DisplayStats(); Console.WriteLine(); FixedEmployee fran = new FixedEmployee("Fran", 43, 93, 3000, "932-32-3232", 6010); fran.GiveBonus(200); fran.DisplayStats(); Console.WriteLine(); CastingExamples(); //Создать на базе абстрактного класса массив сотрудников и заполнить его. Employee[] Workers = { new TimeEmployee("Frank Zappa", 19, 300, 40000, "111-11-1111", 5), new TimeEmployee("MoonUnit Zappa", 22, 301, 20000, "101-11-1321", 6), new FixedEmployee("Jill", 34, 308, 100000, "111-12-1119", 800), new TimeEmployee("Chucky", 50, 92, 100000, "333-23-2322", 9), new FixedEmployee("Fran", 43, 93, 3000, "932-32-3232", 6010) }; // Отобразить содержимое текущего массива. Console.WriteLine("Here is the unordered set of Employee:"); foreach (Employee i in Workers) { Console.WriteLine("{0} {1}", i.Name, i.ID); } //**Реализовать интерфейсы для возможности сортировки массива используя Array.Sort() Array.Sort(Workers); Console.WriteLine(); // Отобразить содержимое отсортированного массива. Console.WriteLine("Here is the ordered set of Employee:"); foreach (Employee i in Workers) { Console.WriteLine("{0} {1}", i.Name, i.ID); } //Создать класс содержащий массив сотрудников и реализовать возможность вывода //данных с использованием foreach. Console.WriteLine("***** Fun with lEnumerable / IEnumerator *****\n"); WorkersAr ListWorkers = new WorkersAr(); foreach (Employee i in ListWorkers) { Console.WriteLine("Name ...{0} EmpID ...{1}", i.Name, i.ID); } Console.ReadLine(); }
static void CastingExamples() { // A TimeEmployee "is-a" System.Object, so we can // store a TimeEmployee reference in an object variable just fine. object frank = new TimeEmployee("Frank Zappa", 19, 3000, 40000, "111-11-1111", 5); // OK! GivePromotion((TimeEmployee)frank); // A TimeEmployee "is-an" Employee too. Employee moonUnit = new TimeEmployee("MoonUnit Zappa", 22, 3001, 20000, "101-11-1321", 6); GivePromotion(moonUnit); // A FixedEmployee "is-a" Employee. FixedEmployee jill = new FixedEmployee("Jill", 34, 3002, 100000, "111-12-1119", 800); GivePromotion(jill); }