Исправление ошибок
This commit is contained in:
parent
27d06f5bbc
commit
3ce36fbe16
@ -31,7 +31,7 @@ namespace ProjectMonorail
|
||||
switch (comboBoxSelectorCompany.Text)
|
||||
{
|
||||
case "Хранилище":
|
||||
_company = new MonorailSharingService(pictureBox.Width, pictureBox.Height, new MassiveGenericObjects<DrawingMonorail>());
|
||||
_company = new DepotSharingService(pictureBox.Width, pictureBox.Height, new MassiveGenericObjects<DrawingMonorail>());
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -60,7 +60,7 @@ namespace ProjectMonorail
|
||||
return;
|
||||
}
|
||||
|
||||
if (_company + drawningMonorail)
|
||||
if (_company + drawningMonorail != -1)
|
||||
{
|
||||
MessageBox.Show("Объект добавлен");
|
||||
pictureBox.Image = _company.Show();
|
||||
@ -107,7 +107,7 @@ namespace ProjectMonorail
|
||||
|
||||
int position = Convert.ToInt32(maskedTextBox.Text);
|
||||
|
||||
if (_company - position)
|
||||
if (_company - position != null)
|
||||
{
|
||||
MessageBox.Show("Объект удален");
|
||||
pictureBox.Image = _company.Show();
|
||||
|
@ -10,7 +10,7 @@ namespace ProjectMonorail.Scripts.Monorail.CollectionGenericObjects
|
||||
/// <summary>
|
||||
/// Размер места (ширина)
|
||||
/// </summary>
|
||||
protected readonly int _placeSizeWidth = 210;
|
||||
protected readonly int _placeSizeWidth = 240;
|
||||
|
||||
/// <summary>
|
||||
/// Размер места (высота)
|
||||
@ -57,9 +57,9 @@ namespace ProjectMonorail.Scripts.Monorail.CollectionGenericObjects
|
||||
/// <param name="company">Компания</param>
|
||||
/// <param name="monorail">Добавляемый объект</param>
|
||||
/// <returns></returns>
|
||||
public static bool operator +(AbstractCompany company, DrawingMonorail monorail)
|
||||
public static int operator +(AbstractCompany company, DrawingMonorail monorail)
|
||||
{
|
||||
return company._collection?.Insert(monorail) ?? false;
|
||||
return company._collection?.Insert(monorail) ?? -1;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -68,9 +68,9 @@ namespace ProjectMonorail.Scripts.Monorail.CollectionGenericObjects
|
||||
/// <param name="company">Компания</param>
|
||||
/// <param name="position">Номер удаляемого объекта</param>
|
||||
/// <returns></returns>
|
||||
public static bool operator -(AbstractCompany company, int position)
|
||||
public static DrawingMonorail operator -(AbstractCompany company, int position)
|
||||
{
|
||||
return company._collection?.Remove(position) ?? false;
|
||||
return company._collection?.Remove(position) ?? null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
@ -4,9 +4,9 @@ using System.Drawing;
|
||||
|
||||
namespace ProjectMonorail.Scripts.Monorail.CollectionGenericObjects
|
||||
{
|
||||
public class MonorailSharingService : AbstractCompany
|
||||
public class DepotSharingService : AbstractCompany
|
||||
{
|
||||
public MonorailSharingService(int pictureWidth, int pictureHeight, ICollectionGenericObjects<DrawingMonorail> collection) : base(pictureWidth, pictureHeight, collection) {}
|
||||
public DepotSharingService(int pictureWidth, int pictureHeight, ICollectionGenericObjects<DrawingMonorail> collection) : base(pictureWidth, pictureHeight, collection) {}
|
||||
|
||||
private int maxCountX;
|
||||
private int maxCountY;
|
||||
@ -39,13 +39,12 @@ namespace ProjectMonorail.Scripts.Monorail.CollectionGenericObjects
|
||||
int boarderOffsetX = 20;
|
||||
int boarderOffsetY = 20;
|
||||
|
||||
int currentIndex = -1;
|
||||
int currentIndex = 0;
|
||||
|
||||
for (int j = 0; j < maxCountY; j++)
|
||||
for (int j = maxCountY - 1; j >= 0; j--)
|
||||
{
|
||||
for (int i = 0; i < maxCountX; i++)
|
||||
for (int i = 0; i < maxCountX; i++, currentIndex++)
|
||||
{
|
||||
currentIndex++;
|
||||
if (_collection.Get(currentIndex) == null) continue;
|
||||
|
||||
_collection.Get(currentIndex).SetPictureSize(_pictureWidth, _pictureHeight);
|
@ -1,4 +1,6 @@
|
||||
namespace ProjectMonorail.Scripts.Monorail.CollectionGenericObjects
|
||||
using ProjectMonorail.Scripts.Monorail.Drawnings;
|
||||
|
||||
namespace ProjectMonorail.Scripts.Monorail.CollectionGenericObjects
|
||||
{
|
||||
/// <summary>
|
||||
/// Интерфейс описания действий для набора хранимых объектов
|
||||
@ -22,7 +24,7 @@
|
||||
/// </summary>
|
||||
/// <param name="obj">Добавляемый объект</param>
|
||||
/// <returns>true - вставка прошла удачно, false - вставка не удалась</returns>
|
||||
bool Insert(T obj);
|
||||
int Insert(T obj);
|
||||
|
||||
/// <summary>
|
||||
/// Добавление объекта в коллекцию на конкретную позицию
|
||||
@ -30,14 +32,14 @@
|
||||
/// <param name="obj">Добавляемый объект</param>
|
||||
/// <param name="position">Позиция</param>
|
||||
/// <returns>true - вставка прошла удачно, false - вставка не удалась</returns>
|
||||
bool Insert(T obj, int position);
|
||||
int Insert(T obj, int position);
|
||||
|
||||
/// <summary>
|
||||
/// Удаление объекта из коллекции с конкретной позиции
|
||||
/// </summary>
|
||||
/// <param name="position">Позиция</param>
|
||||
/// <returns>true - удаление прошло удачно, false - удаление не удалось</returns>
|
||||
bool Remove(int position);
|
||||
T? Remove(int position);
|
||||
|
||||
/// <summary>
|
||||
/// Получение объекта по позиции
|
||||
|
@ -43,54 +43,55 @@ namespace ProjectMonorail.Scripts.Monorail.CollectionGenericObjects
|
||||
public T? Get(int position)
|
||||
{
|
||||
// TODO проверка позиции
|
||||
if (_collection[position] == null) return null;
|
||||
if (!(position >= 0 && position < Count) || _collection[position] == null) return null;
|
||||
return _collection[position];
|
||||
}
|
||||
|
||||
public bool Insert(T obj)
|
||||
public int Insert(T obj)
|
||||
{
|
||||
// TODO вставка в свободное место набора
|
||||
for (int i = 0; i < Count; i++)
|
||||
{
|
||||
if (InsertingElementCollection(i, obj)) return true;
|
||||
if (InsertingElementCollection(i, obj)) return i;
|
||||
}
|
||||
|
||||
return false;
|
||||
return -1;
|
||||
}
|
||||
|
||||
public bool Insert(T obj, int position)
|
||||
public int Insert(T obj, int position)
|
||||
{
|
||||
// TODO проверка позиции
|
||||
// TODO проверка, что элемент массива по этой позиции пустой, если нет, то
|
||||
// ищется свободное место после этой позиции и идет вставка туда
|
||||
// если нет после, ищем до
|
||||
// TODO вставка
|
||||
|
||||
if (InsertingElementCollection(position, obj)) return true;
|
||||
if (!(position >= 0 && position < Count)) return -1;
|
||||
if (InsertingElementCollection(position, obj)) return position;
|
||||
|
||||
for (int i = position + 1; i < Count; i++)
|
||||
{
|
||||
if (InsertingElementCollection(i, obj)) return true;
|
||||
if (InsertingElementCollection(i, obj)) return i;
|
||||
}
|
||||
|
||||
for (int i = position - 1; i >= 0; i--)
|
||||
{
|
||||
if (InsertingElementCollection(i, obj)) return true;
|
||||
if (InsertingElementCollection(i, obj)) return i;
|
||||
}
|
||||
|
||||
return false;
|
||||
return -1;
|
||||
}
|
||||
|
||||
public bool Remove(int position)
|
||||
public T Remove(int position)
|
||||
{
|
||||
// TODO проверка позиции
|
||||
// TODO удаление объекта из массива, присвоив элементу массива значение null
|
||||
|
||||
if (_collection[position] == null) return false;
|
||||
if (!(position >= 0 && position < Count) || _collection[position] == null) return null;
|
||||
|
||||
T obj = _collection[position];
|
||||
_collection[position] = null;
|
||||
|
||||
return true;
|
||||
return obj;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
Loading…
Reference in New Issue
Block a user