using ProjectCruiser.Entities; namespace ProjectCruiser.DrawningSamples; public static class ExtentionDrShip { // Разделитель для записи информации по объекту в файл private static readonly string _separatorForObject = ":"; // Создание объекта из строки public static DrawningBase? CreateDrawningCar(this string info) { string[] strs = info.Split(_separatorForObject); EntityBase? ship = EntityCruiser.CreateEntity(strs); if (ship != null) { return new DrawningCruiser((EntityCruiser)ship); } ship = EntityBase.CreateEntity(strs); if (ship != null) { return new DrawningBase(ship); } return null; } // Получение данных для сохранения в файл - - - - - - - public static string GetDataForSave(this DrawningBase drShip) // метод расширения за счёт ключевого слова 'this' // вызов метода достигается не через имя класса, // а при вызове у объекта типа DrawningBase [*] { string[]? array = drShip?.EntityTransport?.GetStringRepresentation(); if (array == null) { return string.Empty; } return string.Join(_separatorForObject, array); } }