static void Main(string[] args) { Console.WriteLine("***** The Employee Class Hierarchy *****\n"); SalesPerson danny = new SalesPerson(); danny.Name = "Danny"; danny.Age = 31; danny.SalesNumber = 50; Manager chucky = new Manager("Chucky", 50, 92, 100000, "333-23-2322", 9000); //错误!不能从对象实例中直接访问受保护数据 //Employee emp = new Employee(); //emp.empName = "Fred"; double cost = chucky.GetBenefitCost(); // 定义福利等级 Employee.BenefitPackage.BenefitPackageLevel myBendfitLevel = Employee.BenefitPackage.BenefitPackageLevel.Platinum; chucky.GiveBonus(300); chucky.DisplayStats(); Console.WriteLine(); SalesPerson fran = new SalesPerson("Fran", 43, 93, 3000, "932-32-3232", 31); fran.GiveBonus(200); fran.DisplayStats(); Console.WriteLine(); Console.ReadLine(); }
static void Main(string[] args) { Console.WriteLine("***** The Employee Class Hierarchy *****\n"); SalesPerson fred = new SalesPerson { Age = 31, Name = "Fred", SalesNumber = 50 }; Manager chucky = new Manager("Chucky", 50, 92, 100000, "333-23-2322", 9000); chucky.GiveBonus(300); chucky.DisplayStats(); Console.WriteLine(); SalesPerson fran = new SalesPerson("Fran", 43, 93, 3000, "932-32-3232", 31); fran.GiveBonus(200); fran.DisplayStats(); Console.WriteLine(); double cost = chucky.GetBenefitCost(); Console.WriteLine($"Benefit Cost: {cost}"); Employee.BenefitPackage.BenefitPackageLevel myBenefitLevel = Employee.BenefitPackage.BenefitPackageLevel.Platinum; CastingExamples(); Console.ReadLine(); }
static void Main(string[] args) { Console.WriteLine("***** The Employee Class Hierarchy *****\n"); SalesPerson fred = new SalesPerson(); fred.Age = 31; fred.Name = "Fred"; fred.SalesNumber = 50; Console.ReadLine(); // Assume Manager has a constructor matching this signature: // (string fullName, int age, int empID, // float currPay, string ssn, int numbOfOpts) Manager chucky = new Manager("Chucky", 50, 92, 100000, "333-23-2322", 9000); //double cost = chucky.GetBenefitCost(); chucky.GiveBonus(300); chucky.DisplayStats(); Console.WriteLine(); SalesPerson fran = new SalesPerson("Fran", 43, 93, 3000, "932-32-3232", 31); fran.GiveBonus(200); fran.DisplayStats(); Console.ReadLine(); // Define benefit level Employee.BenefitPackage.BenefitPackageLevel mybenefitLevel = Employee.BenefitPackage.BenefitPackageLevel.Platinum; Console.ReadLine(); }
static void Main(string[] args) { Console.WriteLine("***** The Employee Class Hierarchy *****\n"); SalesPerson beedle = new SalesPerson(); beedle.Age = 28; beedle.Name = "Beedle"; beedle.SalesNumber = 38; // A better bonus system! Manager ganondorf = new Manager("Ganondorf", 200, 4, 181000, "320-10-2923", 15000); double cost = ganondorf.GetBenefitCost(); ganondorf.GiveBonus(3000); ganondorf.DisplayStats(); Console.WriteLine(); SalesPerson impa = new SalesPerson("Impa", 67, 21, 90000, "281-23-2180", 17); impa.GiveBonus(1000); impa.DisplayStats(); // Define my benefit level. Employee.BenefitPackage.BenefitPackageLevel myBenefitLevel = Employee.BenefitPackage.BenefitPackageLevel.Platinum; Console.ReadLine(); }
static void Main(string[] args) { // Create and use the public inner class. OK! OuterClass.PublicInnerClass inner; inner = new OuterClass.PublicInnerClass(); // Compiler Error! Cannot access the private class. //OuterClass.PrivateInnerClass inner2; //inner2 = new OuterClass.PrivateInnerClass(); // Aufruf einer tief nested Enumeration BenefitPackageLevel // Define my benefit level. Employee.BenefitPackage.BenefitPackageLevel myBenefitLevel = Employee.BenefitPackage.BenefitPackageLevel.Platinum; Console.ReadLine(); }
static void Main(string[] args) { SalesPerson fred = new SalesPerson(); fred.Name = "Fred"; fred.Age = 31; fred.SalesNumber = 50; fred.DisplayStats(); Employee.BenefitPackage.BenefitPackageLevel myBenefitLevel = Employee.BenefitPackage.BenefitPackageLevel.Platinum; Console.ReadKey(); }
static void Main(string[] args) { Employee.BenefitPackage.BenefitPackageLevel myBenefitLevel = Employee.BenefitPackage.BenefitPackageLevel.Platinum; Manager chucky = new Manager("Chucky", 50, 92, 100000, "333-23-2322", 9000); chucky.GiveBonus(300); chucky.DisplayStats(); Console.WriteLine(); SalesPerson fran = new SalesPerson("Fran", 43, 93, 3000, "932-32-3232", 31); fran.GiveBonus(200); fran.DisplayStats(); Console.ReadLine(); }
static void Main(string[] args) { Console.WriteLine("***** The Employee Class Hierarchy *****\n"); // Create a subclass object and access base class functionality. SalesPerson fred = new SalesPerson(); fred.Age = 31; fred.Name = "Fred"; fred.SalesNumber = 50; Manager chucky = new Manager("Chucky", 50, 92, 100000, "333-23-2322", 9000); double cost = chucky.GetBenefitCost(); // Create and use the public inner class. OK! OuterClass.PublicInnerClass inner; inner = new OuterClass.PublicInnerClass(); // Compiler Error! Cannot access the private class. //OuterClass.PrivateInnerClass inner2; //inner2 = new OuterClass.PrivateInnerClass(); // Define my benefit level. Employee.BenefitPackage.BenefitPackageLevel myBenefitLevel = Employee.BenefitPackage.BenefitPackageLevel.Platinum; Console.WriteLine("BenefitPackageLevel: {0}", myBenefitLevel); Console.WriteLine(); // Give each employee a bonus? chucky.GiveBonus(300); chucky.DisplayStats(); Console.WriteLine(); SalesPerson fran = new SalesPerson("Fran", 43, 93, 3000, "932-32-3232", 31); fran.GiveBonus(200); fran.DisplayStats(); Console.WriteLine(); // Error! Cannot create an instance of an abstract class! //Employee X = new Employee(); CastingExamples(); Console.ReadLine(); }
static void Main(string[] args) { Console.WriteLine("****** The Employee Class Hierarchy ******\n"); SalesPerson fred = new SalesPerson() { Age = 31, Name = "Fred", SalesNumber = 50, Pay = 6000 }; Manager chucky = new Manager("Chucky", 45, 1497, 102450, "1678-05-04", 9000); double cost = chucky.GetBenefitCost(); Employee.BenefitPackage.BenefitPackageLevel myBenefitlevel = Employee.BenefitPackage.BenefitPackageLevel.Platinum; chucky.DisplayStats(); chucky.GiveBonus(300); chucky.DisplayStats(); Console.WriteLine(); fred.DisplayStats(); fred.GiveBonus(150); fred.DisplayStats(); Console.WriteLine(); CastingExamples(); Hexagon hex; object frank = new Manager(); try { hex = (Hexagon)frank; } catch (Exception e) { ConsoleColor prevCol = Console.ForegroundColor; Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine(e.Message); Console.ForegroundColor = prevCol; } TestAsKeyword(); Console.ReadLine(); }
// Create a subclass object and access base class functionality. static void Main(string[] args) { Console.WriteLine("***** The Employee Class Hierachy *****\n"); SalesPerson fred = new SalesPerson(); fred.Age = 31; fred.Name = "Fred"; fred.SalesNumber = 50; //Manager chucky = new Manager("Chucky", 50, 92, 100000, "333-23-2322", 9000); //chucky.GiveBonus(300); //double cost = chucky.GetBenefitCost(); //chucky.DisplayStats(); //Console.WriteLine(); //SalesPerson fran = new SalesPerson("Fran", 43, 93, 3000, "932-32-3232", 31); //fran.GiveBonus(200); //fran.DisplayStats(); //Console.WriteLine(); // Define my benefit level. Employee.BenefitPackage.BenefitPackageLevel myBenefitLevel = Employee.BenefitPackage.BenefitPackageLevel.Platinum; Console.WriteLine("My Benefit Level is {0}", myBenefitLevel); Console.WriteLine(); // A better bonus system! Manager chucky = new Manager("Chucky", 50, 92, 100000, "333-23-2322", 9000); chucky.GiveBonus(300); chucky.DisplayStats(); Console.WriteLine(); SalesPerson fran = new SalesPerson("Fran", 43, 93, 3000, "932-32-3232", 31); fran.GiveBonus(200); fran.DisplayStats(); Console.WriteLine(); }
// Create a subclass object and access base class functionality. static void Main(string[] args) { Console.WriteLine("***** The Employee Class Hierarchy *****\n"); SalesPerson fred = new SalesPerson(); fred.Age = 31; fred.Name = "Fred"; fred.SalesNumber = 50; // Assume Manager has a constructor matching this signature: // (string fullName, int age, int empID, float currPay, string ssn, int numbOfOpts) Manager chucky = new Manager("Chucky", 50, 92, 100000, "333-23-2322", 9000); Console.WriteLine(chucky.Name); // Error! Can't access protected data from client code. //Employee emp = new Employee(); //emp.empName = "Fred"; double cost = chucky.GetBenefitCost(); Console.WriteLine($"cost: {cost}"); // Define my benefit level. Employee.BenefitPackage.BenefitPackageLevel myBenefitLevel = Employee.BenefitPackage.BenefitPackageLevel.Platinum; Console.WriteLine($"myBenefitLevel: {myBenefitLevel}"); // Give each employee a bonus? // chucky = new Manager("Chucky", 50, 92, 100000, "333-23-2322", 9000); chucky.GiveBonus(300); chucky.DisplayStats(); Console.WriteLine(); SalesPerson fran = new SalesPerson("Fran", 43, 93, 3000, "932-32-3232", 31); fran.GiveBonus(200); fran.DisplayStats(); // Ack! You can't cast frank to a Hexagon, but this compiles fine! // Catch a possible runtime exception which can be happened by invalid explicit type cast. object frank = new Manager(); Hexagon hex; try { hex = (Hexagon)frank; } catch (InvalidCastException ex) { Console.WriteLine(ex.Message); } // Use "as" to test compatability. object[] things = new object[4]; things[0] = new Hexagon(); things[1] = false; things[2] = new Manager(); things[3] = "Last thing"; foreach (object item in things) { Hexagon h = item as Hexagon; if (h == null) { Console.WriteLine("Item is not a hexagon"); } else { h.Draw(); } } Console.ReadLine(); }
static void Main(string[] args) { #region Uncomment to test abstract base class. // Employee e = new Employee(); // Uncomment to test readonly field. // Employee brenner = new Employee(); // brenner.SSNField = "666-66-6666"; #endregion Console.WriteLine("***** These folks work at {0} *****", Employee.Company); Manager chucky = new Manager("Chucky", 35, 92, 100000, "333-23-2322", 9000); chucky.GiveBonus(300); chucky.DisplayStats(); chucky.Age++; // Happy birthday Chuck! Console.WriteLine(); SalesPerson fran = new SalesPerson("Fran", 26, 93, 30000, "932-32-3232", 31); fran.GiveBonus(200); fran.DisplayStats(); Console.WriteLine(); #region Casting examples Console.WriteLine("***** Casting examples *****"); // A Manager 'is-a' object. object frank = new Manager("Frank Zappa", 50, 9, 40000, "111-11-1111", 5); // A Manager 'is-a' Employee too. Employee moonUnit = new Manager("MoonUnit Zappa", 16, 2, 20000, "101-11-1321", 1); // A PTSales dude(tte) is a Sales dude(tte) SalesPerson jill = new PTSalesPerson("Jill", 30, 834, 100000, "111-12-1119", 90); // Cast from the generic System.Object into a strongly // typed Manager. Console.WriteLine("***** Counting frank's stock options *****"); Manager mgr = (Manager)frank; Console.WriteLine("Frank's options: {0}", mgr.NumbOpts); Console.WriteLine("Frank's options: {0}", ((Manager)frank).NumbOpts); Console.WriteLine("\n***** Firing employees using casting operations! *****"); TheMachine.FireThisPerson(moonUnit); Console.WriteLine(); TheMachine.FireThisPerson(jill); Console.WriteLine(); // Error! Must cast when moving from base to derived! // TheMachine.FireThisPerson(frank); TheMachine.FireThisPerson((Employee)frank); Console.WriteLine(); #endregion // Creating a (very) nested BenefitPackageLevel enum variable. Employee.BenefitPackage.BenefitPackageLevel myBenifitLevel = Employee.BenefitPackage.BenefitPackageLevel.Platinum; Console.ReadLine(); }