using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ProjectMonorail.Entities; /// /// Класс-сущность "Поезд" /// public class EntityTrain { /// /// Скорость /// public int Speed { get; private set; } /// /// Вес /// public double Weight { get; private set; } /// /// Основной цвет /// public Color MainColor { get; private set; } /// /// Шаг передвижения /// public double Step => Speed * 100 / Weight; /// /// Метод для задания основного цвета /// /// public void SetMainColor (Color color) { MainColor = color; } /// /// Конструктор сущности /// /// Скорость /// Вес /// Основной цвет public EntityTrain(int speed, double weight, Color mainColor) { Speed = speed; Weight = weight; MainColor = mainColor; } /// /// Получение строк со значениями свойств объекта класса-сущности /// /// public virtual string[] GetStringRepresentation() { return new[] { nameof(EntityTrain), Speed.ToString(), Weight.ToString(), MainColor.Name }; } /// /// Создание объекта из массива строк /// /// /// public static EntityTrain? CreateEntityTrain(string[] strs) { if (strs.Length != 4 || strs[0] != nameof(EntityTrain)) { return null; } return new EntityTrain(Convert.ToInt32(strs[1]), Convert.ToDouble(strs[2]), Color.FromName(strs[3])); } }