static void Casting() { Console.ForegroundColor = ConsoleColor.DarkCyan; Console.WriteLine("=> Casting Rules"); object frank = new Manager("Frank", 9, 3000, 40000, "111111111", 5); Employee moon = new Manager("Moon", 2, 3001, 20000, "101111111", 10); SalesPerson jill = new PTSalesPerson("Jill", 834, 3002, 100002, "102111111", 90); GivePromotion(moon); GivePromotion(jill); GivePromotion((Manager)frank); object obj = new object(); try { GivePromotion((Manager)obj); } catch (Exception e) { Console.WriteLine($"Erorr for GiveGromotion(obj): {e.Message}"); } Console.WriteLine($"Types: frank <{frank.GetType().Name}>, moon <{moon.GetType()}>, jill <{jill.GetType().Name}>, obj <{obj.GetType()}>"); }