namespace ProjectAirplaneWithRadar.Entities { /// /// Класс-сущность "Самолет с радаром" /// public class EntityAirplaneWithRadar : EntityAirplane { /// /// Дополнительный цвет (для опциональных элементов) /// public Color AdditionalColor { get; private set; } /// /// Признак (опция) наличия шасси /// public bool Wheels { get; private set; } /// /// Признак (опция) наличия радар /// public bool Radar { get; private set; } /// /// Инициализация полей объекта-класса самолета с радаром /// /// Скорость /// Вес /// Основной цвет /// Дополнительный цвет /// Шасси /// Радар public EntityAirplaneWithRadar(int speed, double weight, Color bodyColor, Color additionalColor, bool wheels, bool radar) : base(speed, weight, bodyColor) { AdditionalColor = additionalColor; Wheels = wheels; Radar = radar; } /// /// Метод передачи дополнительного цвета /// /// public void SetAdditionalColor(Color additionalColor) { AdditionalColor = additionalColor; } /// /// Переопределение метода создания объекта из массива строк /// /// public override string[] GetStringRepresentation() { return new[] { nameof(EntityAirplaneWithRadar), Speed.ToString(), Weight.ToString(), BodyColor.Name, AdditionalColor.Name, Wheels.ToString(), Radar.ToString() }; } /// /// Создание объекта из массива строк /// /// /// public static EntityAirplaneWithRadar? CreateEntityAirplaneWithRadar(string[] strs) { if (strs.Length != 7 || strs[0] != nameof(EntityAirplaneWithRadar)) return null; return new EntityAirplaneWithRadar(Convert.ToInt32(strs[1]), Convert.ToDouble(strs[2]), Color.FromName(strs[3]), Color.FromName(strs[4]), Convert.ToBoolean(strs[5]), Convert.ToBoolean(strs[6])); } } }