Refactoring constructors
When you think about the job of a constructor, its whole reason for being is to get the object into its correct initial position. Once the constructor completes, the object is generally considered ready for use by other code.
This means that constructors can be very handy for ensuring that certain pieces of information are in place.
Right now, our Flight
class is defined fairly minimally and only has the default constructor that .NET provides in the absence of any explicit constructor:
Flight.cs
public class Flight { public string Id { get; set; } public string Destination { get; set; } public DateTime DepartureTime { get; set; } public DateTime ArrivalTime { get; set; } public string Gate { get; set; } public FlightStatus Status { get; set; } public override string ToString() { ...