diff --git a/vs4win/Chapter05/PacktLibrary/FlightPatterns.cs b/vs4win/Chapter05/PacktLibrary/FlightPatterns.cs index f582518..8957a23 100644 --- a/vs4win/Chapter05/PacktLibrary/FlightPatterns.cs +++ b/vs4win/Chapter05/PacktLibrary/FlightPatterns.cs @@ -1,29 +1,34 @@ namespace Packt.Shared; -public class BusinessClassPassenger +public class Passenger +{ + public string? Name { get; set; } +} + +public class BusinessClassPassenger : Passenger { public override string ToString() { - return "Business Class"; + return $"Business Class: {Name}"; } } -public class FirstClassPassenger +public class FirstClassPassenger : Passenger { public int AirMiles { get; set; } public override string ToString() { - return $"First Class with {AirMiles:N0} air miles"; + return $"First Class with {AirMiles:N0} air miles: {Name}"; } } -public class CoachClassPassenger +public class CoachClassPassenger : Passenger { public double CarryOnKG { get; set; } public override string ToString() { - return $"Coach Class with {CarryOnKG:N2} KG carry on"; + return $"Coach Class with {CarryOnKG:N2} KG carry on: {Name}"; } } diff --git a/vs4win/Chapter05/PacktLibrary/PersonAutoGen.cs b/vs4win/Chapter05/PacktLibrary/PersonAutoGen.cs index 4544f58..8693aa9 100644 --- a/vs4win/Chapter05/PacktLibrary/PersonAutoGen.cs +++ b/vs4win/Chapter05/PacktLibrary/PersonAutoGen.cs @@ -92,7 +92,7 @@ public partial class Person if (married) return; spouse = partner; married = true; - partner.Marry(this); + partner.Marry(this); // this is the current object } // static method to "multiply" diff --git a/vs4win/Chapter05/PeopleApp/Program.cs b/vs4win/Chapter05/PeopleApp/Program.cs index 3a36ece..cc928e0 100644 --- a/vs4win/Chapter05/PeopleApp/Program.cs +++ b/vs4win/Chapter05/PeopleApp/Program.cs @@ -114,7 +114,7 @@ WriteLine($"{thing2.Name} has {thing2.Count} children."); WriteLine($"Deconstructed: {fruitName}, {fruitNumber}"); // Deconstructing a Person -var (name1, dob1) = bob; +var (name1, dob1) = bob; // implicitly calls the Deconstruct method WriteLine($"Deconstructed: {name1}, {dob1}"); var (name2, dob2, fav2) = bob; @@ -227,12 +227,12 @@ WriteLine($"5! is {Person.Factorial(5)}"); // Pattern matching with objects -object[] passengers = { - new FirstClassPassenger { AirMiles = 1_419 }, - new FirstClassPassenger { AirMiles = 16_562 }, - new BusinessClassPassenger(), - new CoachClassPassenger { CarryOnKG = 25.7 }, - new CoachClassPassenger { CarryOnKG = 0 }, +Passenger[] passengers = { + new FirstClassPassenger { AirMiles = 1_419, Name = "Suman" }, + new FirstClassPassenger { AirMiles = 16_562, Name = "Lucy" }, + new BusinessClassPassenger { Name = "Janice" }, + new CoachClassPassenger { CarryOnKG = 25.7, Name = "Dave" }, + new CoachClassPassenger { CarryOnKG = 0, Name = "Amit" }, }; foreach (object passenger in passengers) diff --git a/vscode/Chapter05/PacktLibrary/FlightPatterns.cs b/vscode/Chapter05/PacktLibrary/FlightPatterns.cs index f582518..8957a23 100644 --- a/vscode/Chapter05/PacktLibrary/FlightPatterns.cs +++ b/vscode/Chapter05/PacktLibrary/FlightPatterns.cs @@ -1,29 +1,34 @@ namespace Packt.Shared; -public class BusinessClassPassenger +public class Passenger +{ + public string? Name { get; set; } +} + +public class BusinessClassPassenger : Passenger { public override string ToString() { - return "Business Class"; + return $"Business Class: {Name}"; } } -public class FirstClassPassenger +public class FirstClassPassenger : Passenger { public int AirMiles { get; set; } public override string ToString() { - return $"First Class with {AirMiles:N0} air miles"; + return $"First Class with {AirMiles:N0} air miles: {Name}"; } } -public class CoachClassPassenger +public class CoachClassPassenger : Passenger { public double CarryOnKG { get; set; } public override string ToString() { - return $"Coach Class with {CarryOnKG:N2} KG carry on"; + return $"Coach Class with {CarryOnKG:N2} KG carry on: {Name}"; } } diff --git a/vscode/Chapter05/PacktLibrary/PersonAutoGen.cs b/vscode/Chapter05/PacktLibrary/PersonAutoGen.cs index 4544f58..8693aa9 100644 --- a/vscode/Chapter05/PacktLibrary/PersonAutoGen.cs +++ b/vscode/Chapter05/PacktLibrary/PersonAutoGen.cs @@ -92,7 +92,7 @@ public partial class Person if (married) return; spouse = partner; married = true; - partner.Marry(this); + partner.Marry(this); // this is the current object } // static method to "multiply" diff --git a/vscode/Chapter05/PeopleApp/Program.cs b/vscode/Chapter05/PeopleApp/Program.cs index 3a36ece..cc928e0 100644 --- a/vscode/Chapter05/PeopleApp/Program.cs +++ b/vscode/Chapter05/PeopleApp/Program.cs @@ -114,7 +114,7 @@ WriteLine($"{thing2.Name} has {thing2.Count} children."); WriteLine($"Deconstructed: {fruitName}, {fruitNumber}"); // Deconstructing a Person -var (name1, dob1) = bob; +var (name1, dob1) = bob; // implicitly calls the Deconstruct method WriteLine($"Deconstructed: {name1}, {dob1}"); var (name2, dob2, fav2) = bob; @@ -227,12 +227,12 @@ WriteLine($"5! is {Person.Factorial(5)}"); // Pattern matching with objects -object[] passengers = { - new FirstClassPassenger { AirMiles = 1_419 }, - new FirstClassPassenger { AirMiles = 16_562 }, - new BusinessClassPassenger(), - new CoachClassPassenger { CarryOnKG = 25.7 }, - new CoachClassPassenger { CarryOnKG = 0 }, +Passenger[] passengers = { + new FirstClassPassenger { AirMiles = 1_419, Name = "Suman" }, + new FirstClassPassenger { AirMiles = 16_562, Name = "Lucy" }, + new BusinessClassPassenger { Name = "Janice" }, + new CoachClassPassenger { CarryOnKG = 25.7, Name = "Dave" }, + new CoachClassPassenger { CarryOnKG = 0, Name = "Amit" }, }; foreach (object passenger in passengers)