PIbd-14_Pruidze_I.K_Simple_.../ProjectCruiser/DrawningSamples/ExtentionDrShip.cs

42 lines
1.4 KiB
C#
Raw Normal View History

2024-06-15 13:28:42 +04:00
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);
}
}