using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ArmoredVehicle { internal static class ExtentionMachine { /// /// Разделитель для записи информации по объекту в файл /// private static readonly char _separatorForObject = ':'; /// /// Создание объекта из строки /// /// /// public static DrawingArmoredVehicle CreateDrawningCar(this string info) { string[] strs = info.Split(_separatorForObject); if (strs.Length == 3) { return new DrawingArmoredVehicle(Convert.ToInt32(strs[0]), Convert.ToInt32(strs[1]), Color.FromName(strs[2])); } if (strs.Length == 6) { return new DrawingTank(Convert.ToInt32(strs[0]), Convert.ToInt32(strs[1]), Color.FromName(strs[2]), Color.FromName(strs[3]), Convert.ToBoolean(strs[4]), Convert.ToBoolean(strs[5])); } return null; } /// /// Получение данных для сохранения в файл /// /// /// public static string GetDataForSave(this DrawingArmoredVehicle drawningMachine) { var car = drawningMachine.ArmoredVehicle; var str = $"{car.Speed}{_separatorForObject}{car.Weight}{_separatorForObject}{car.BodyColor.Name}"; if (car is not TankEnity tank) { return str; } return $"{str}{_separatorForObject}{tank.DopColor.Name}{_separatorForObject}{tank.MachineGun}{_separatorForObject}{tank.Tower}"; } } }