internal StringBuilder GetDetails() { StringBuilder toDisplay = new StringBuilder(); Type vehicleType = GetType(); foreach (FieldInfo f in typeof(Vehicle).GetFields(BindingFlags.Instance | BindingFlags.NonPublic)) { if (f.FieldType == typeof(Engine)) { toDisplay.Append(m_Engine.GetDetails()); } else if (f.FieldType == r_WheelsList.GetType()) { toDisplay.Append("\r\nWheels Information:"); int wheelNum = 1; foreach (Wheel wheel in r_WheelsList) { toDisplay.Append("\r\nWheel " + wheelNum + " :"); toDisplay.Append(wheel.GetDetails()); wheelNum++; } } else { string memberName = GarageData.FixNameToPrint(f.ToString()); toDisplay.Append("\r\n " + memberName + " = " + f.GetValue(this)); } } foreach (FieldInfo f in vehicleType.GetFields(BindingFlags.Instance | BindingFlags.NonPublic)) { string memberName = GarageData.FixNameToPrint(f.ToString()); toDisplay.Append("\r\n " + memberName + " = " + f.GetValue(this)); } return(toDisplay); }