using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Catamaran { /// /// Расширение для класса DrawingBoat /// internal static class ExtentionBoat { /// /// Разделитель для записи информации по объекту в файл /// private static readonly char _separatorForObject = ':'; /// /// Создание объекта из строки /// /// /// public static DrawingBoat CreateDrawingBoat(this string info) { string[] strs = info.Split(_separatorForObject); if (strs.Length == 3) { return new DrawingBoat(Convert.ToInt32(strs[0]), Convert.ToInt32(strs[1]), Color.FromName(strs[2])); } if (strs.Length == 6) { return new DrawingCatamaran(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 DrawingBoat DrawingBoat) { var Boat = DrawingBoat.Catamaran; var str = $"{Boat.Speed}{_separatorForObject}{Boat.Weight}{_separatorForObject}{Boat.BodyColor.Name}"; if (!(Boat is EntityCatamaran Catamaran)) { return str; } return $"{str}{_separatorForObject}{Catamaran.DopColor.Name}{_separatorForObject}{Catamaran.Floats}{_separatorForObject}{Catamaran.Sail}"; } } }