wip лаба 5
This commit is contained in:
parent
495672b8e8
commit
11aabfe96d
@ -51,7 +51,18 @@ namespace ProjectBus.CollectionGenericObject;
|
||||
/// <param name="position">Позиция</param>
|
||||
/// <returns>Объект</returns>
|
||||
T? Get(int position);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Получение типа коллекции
|
||||
/// </summary>
|
||||
CollectionType GetCollectionType { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Получение объектов коллекции по одному
|
||||
/// </summary>
|
||||
/// <returns>Поэлементый вывод элементов коллекции</returns>
|
||||
IEnumerable<T?> GetItems();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -23,6 +23,8 @@ public class ListGenericObjects<T> : ICollectionGenericObjects<T>
|
||||
|
||||
public int SetMaxCount { set { if (value > 0) { _maxCount = value; } } }
|
||||
|
||||
public CollectionType GetCollectionType => CollectionType.List;
|
||||
|
||||
/// <summary>
|
||||
/// Конструктор
|
||||
/// </summary>
|
||||
@ -70,5 +72,13 @@ public class ListGenericObjects<T> : ICollectionGenericObjects<T>
|
||||
_collection.RemoveAt(position);
|
||||
return temp;
|
||||
}
|
||||
|
||||
public IEnumerable<T?> GetItems()
|
||||
{
|
||||
for (int i = 0; i < Count; ++i)
|
||||
{
|
||||
yield return _collection[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -39,10 +39,12 @@ namespace ProjectBus.CollectionGenericObject;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Конструктор
|
||||
/// </summary>
|
||||
public MassiveGenericObjects()
|
||||
public CollectionType GetCollectionType => CollectionType.Massive;
|
||||
|
||||
/// <summary>
|
||||
/// Конструктор
|
||||
/// </summary>
|
||||
public MassiveGenericObjects()
|
||||
{
|
||||
_collection = Array.Empty<T?>();
|
||||
}
|
||||
@ -132,5 +134,13 @@ namespace ProjectBus.CollectionGenericObject;
|
||||
_collection[position] = null;
|
||||
return temp;
|
||||
}
|
||||
}
|
||||
|
||||
public IEnumerable<T?> GetItems()
|
||||
{
|
||||
for (int i = 0; i < _collection.Length; ++i)
|
||||
{
|
||||
yield return _collection[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -22,6 +22,14 @@ public class DrawningBus : DrawningSimpleBus
|
||||
EntitySimpleBus = new EntityBus(speed, weight, bodyColor, additionalColor, additionalCompartment, accordion);
|
||||
}
|
||||
|
||||
public DrawningBus(EntitySimpleBus simpleBus) : base(310, 52)
|
||||
{
|
||||
if (simpleBus != null && simpleBus is EntityBus bus)
|
||||
{
|
||||
EntitySimpleBus = new EntityBus(bus.Speed, bus.Weight, bus.BodyColor, bus.AdditionalColor, bus.AdditionalCompartment, bus.Accordion);
|
||||
}
|
||||
}
|
||||
|
||||
public override void DrawTransport(Graphics g)
|
||||
{
|
||||
if (EntitySimpleBus == null || EntitySimpleBus is not EntityBus bus || !_startPosX.HasValue || !_startPosY.HasValue)
|
||||
|
@ -80,6 +80,18 @@ public class DrawningSimpleBus
|
||||
EntitySimpleBus = new EntitySimpleBus(speed, weight, bodyColor);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Конструктор
|
||||
/// </summary>
|
||||
/// <param name="simpleBus">Класс-сущность</param>
|
||||
public DrawningSimpleBus(EntitySimpleBus simpleBus) : this()
|
||||
{
|
||||
if (simpleBus != null)
|
||||
{
|
||||
EntitySimpleBus = new EntitySimpleBus(simpleBus.Speed, simpleBus.Weight, simpleBus.BodyColor);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Конструктор для наследников
|
||||
/// </summary>
|
||||
|
56
lab_0/Drawnings/ExtentionDrawningSimpleBus.cs
Normal file
56
lab_0/Drawnings/ExtentionDrawningSimpleBus.cs
Normal file
@ -0,0 +1,56 @@
|
||||
using System;
|
||||
using ProjectBus.Entities;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace ProjectBus.Drawnings;
|
||||
|
||||
public static class ExtentionDrawningSimpleBus
|
||||
{
|
||||
/// <summary>
|
||||
/// Разделитель для записи информации по объекту в файл
|
||||
/// </summary>
|
||||
private static readonly string _separatorForObject = ":";
|
||||
|
||||
/// <summary>
|
||||
/// Создание объекта из строки
|
||||
/// </summary>
|
||||
/// <param name="info">Строка с данными для создания объекта</param>
|
||||
/// <returns>Объект</returns>
|
||||
public static DrawningSimpleBus? CreateDrawningSimpleBus(this string info)
|
||||
{
|
||||
string[] strs = info.Split(_separatorForObject);
|
||||
EntitySimpleBus? simpleBus = EntityBus.CreateEntityBus(strs);
|
||||
if (simpleBus != null)
|
||||
{
|
||||
return new DrawningBus((EntityBus)simpleBus);
|
||||
}
|
||||
|
||||
simpleBus = EntitySimpleBus.CreateEntitySimpleBus(strs);
|
||||
if (simpleBus != null)
|
||||
{
|
||||
return new DrawningSimpleBus(simpleBus);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Получение данных для сохранения в файл
|
||||
/// </summary>
|
||||
/// <param name="drawningSimpleBus">Сохраняемый объект</param>
|
||||
/// <returns>Строка с данными по объекту</returns>
|
||||
public static string GetDataForSave(this DrawningSimpleBus drawningSimpleBus)
|
||||
{
|
||||
string[]? array = drawningSimpleBus?.EntitySimpleBus?.GetStringRepresentation();
|
||||
|
||||
if (array == null)
|
||||
{
|
||||
return string.Empty;
|
||||
}
|
||||
|
||||
return string.Join(_separatorForObject, array);
|
||||
}
|
||||
}
|
@ -40,4 +40,32 @@ public class EntityBus : EntitySimpleBus
|
||||
AdditionalCompartment = additionalCompartment;
|
||||
Accordion = accordion;
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// Получение строк со значениями свойств объекта класса-сущности
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public override string[] GetStringRepresentation()
|
||||
{
|
||||
return new[]
|
||||
{
|
||||
nameof(EntityBus), Speed.ToString(),
|
||||
Weight.ToString(), BodyColor.Name, AdditionalColor.Name, AdditionalCompartment.ToString(), Accordion.ToString()
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Создание объекта из массива строк
|
||||
/// </summary>
|
||||
/// <param name="strs"></param>
|
||||
/// <returns></returns>
|
||||
public static EntitySimpleBus? CreateEntityBus(string[] strs)
|
||||
{
|
||||
if (strs.Length != 7 || strs[0] != nameof(EntityBus))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
return new EntityBus(Convert.ToInt32(strs[1]), Convert.ToDouble(strs[2]), Color.FromName(strs[3]), Color.FromName(strs[4]), Convert.ToBoolean(strs[5]), Convert.ToBoolean(strs[5]));
|
||||
}
|
||||
}
|
||||
|
@ -20,10 +20,6 @@ public class EntitySimpleBus
|
||||
/// Основной цвет
|
||||
/// </summary>
|
||||
public Color BodyColor { get; private set; }
|
||||
public void setBodyColor(Color color)
|
||||
{
|
||||
BodyColor = color;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
@ -43,4 +39,26 @@ public class EntitySimpleBus
|
||||
Weight = weight;
|
||||
BodyColor = bodyColor;
|
||||
}
|
||||
|
||||
// <summary>
|
||||
/// Получение строк со значениями свойств объекта класса-сущности
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public virtual string[] GetStringRepresentation()
|
||||
{
|
||||
return new[] { nameof(EntitySimpleBus), Speed.ToString(), Weight.ToString(), BodyColor.Name };
|
||||
}
|
||||
/// <summary>
|
||||
/// Создание объекта из массива строк
|
||||
/// </summary>
|
||||
/// <param name="strs"></param>
|
||||
/// <returns></returns>
|
||||
public static EntitySimpleBus? CreateEntitySimpleBus(string[] strs)
|
||||
{
|
||||
if (strs.Length != 4 || strs[0] != nameof(EntitySimpleBus))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return new EntitySimpleBus(Convert.ToInt32(strs[1]), Convert.ToDouble(strs[2]), Color.FromName(strs[3]));
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user