PIbd-13 Sheymuhov A.I. LabWork03 Base #4

Closed
sheym wants to merge 4 commits from LabWork03 into LabWork02
5 changed files with 23 additions and 22 deletions
Showing only changes of commit c42289f922 - Show all commits

View File

@ -57,9 +57,9 @@ public abstract class AbstractCompany
/// <param name="company">Компания</param>
/// <param name="warship">Добавляемый объект</param>
/// <returns></returns>
public static bool operator +(AbstractCompany company, DrawningWarship warship)
public static int operator +(AbstractCompany company, DrawningWarship warship)
{
return company._collection?.Insert(warship) ?? false;
return company._collection.Insert(warship);
}
/// <summary>
@ -68,9 +68,9 @@ public abstract class AbstractCompany
/// <param name="company">Компания</param>
/// <param name="position">Номер удаляемого объекта</param>
/// <returns></returns>
public static bool operator -(AbstractCompany company, int position)
public static DrawningWarship? operator -(AbstractCompany company, int position)
{
return company._collection?.Remove(position) ?? false;
return company._collection?.Remove(position);
}
/// <summary>

View File

@ -3,9 +3,9 @@ using ProjectAircraftCarrier_.Drawnings;
namespace ProjectAircraftCarrier_.CollectionGenericObjects;
public class WarshipSharingService : AbstractCompany
public class Docks : AbstractCompany
{
public WarshipSharingService(int picWidth, int picHeight, ICollectionGenericObjects<DrawningWarship> collection) : base(picWidth, picHeight, collection)
public Docks(int picWidth, int picHeight, ICollectionGenericObjects<DrawningWarship> collection) : base(picWidth, picHeight, collection)
{
}

View File

@ -22,7 +22,7 @@ public interface ICollectionGenericObjects<T>
/// </summary>
/// <param name="obj">Добавляемый объект</param>
/// <returns>true - вставка прошла удачно, false - вставка не удалась</returns>
bool Insert(T obj);
int Insert(T obj);
/// <summary>
/// Добавление объекта в коллекцию на конкретную позицию
@ -30,14 +30,14 @@ public interface ICollectionGenericObjects<T>
/// <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>
/// Получение объекта по позиции

View File

@ -34,7 +34,7 @@ public class MassiveGenericObjects<T> : ICollectionGenericObjects<T>
return _collection[position];
}
public bool Insert(T obj)
public int Insert(T obj)
{
// TODO вставка в свободное место набора
for (int i = 0; i < Count; i++)
Review

Правильнее было вызвать Insert(T obj, 0);

Правильнее было вызвать Insert(T obj, 0);
@ -42,13 +42,13 @@ public class MassiveGenericObjects<T> : ICollectionGenericObjects<T>
if (_collection[i] == null)
{
_collection[i] = obj;
return true;
return i;
}
}
return false;
return -1;
}
public bool Insert(T obj, int position)
public int Insert(T obj, int position)
{
// TODO проверка позиции
// TODO проверка, что элемент массива по этой позиции пустой, если нет, то
@ -57,13 +57,13 @@ public class MassiveGenericObjects<T> : ICollectionGenericObjects<T>
// TODO вставка
if (position < 0 || position > Count)
{
return false;
return -1;
}
if (_collection[position] == null)
{
_collection[position] = obj;
return true;
return position;
}
for (int i = position + 1; i < Count; i++)
@ -71,7 +71,7 @@ public class MassiveGenericObjects<T> : ICollectionGenericObjects<T>
if (_collection[i] == null)
{
_collection[i] = obj;
return true;
return position;
}
}
@ -80,24 +80,25 @@ public class MassiveGenericObjects<T> : ICollectionGenericObjects<T>
if (_collection[i] == null)
{
_collection[i] = obj;
return true;
return position;
}
}
return false;
return -1;
}
public bool Remove(int position)
public T? Remove(int position)
{
// TODO проверка позиции
// TODO удаление объекта из массива, присвоив элементу массива значение null
if (position < 0 || position > Count || _collection[position] == null)
{
return false;
return null;
}
T? obj = _collection[position];
_collection[position] = null;
return true;
return obj;
}
}

View File

@ -31,7 +31,7 @@ public partial class FormWarshipCollection : Form
switch (comboBoxSelectorCompany.Text)
{
case "Хранилище":
_company = new WarshipSharingService(pictureBox.Width, pictureBox.Height, new MassiveGenericObjects<DrawningWarship>());
_company = new Docks(pictureBox.Width, pictureBox.Height, new MassiveGenericObjects<DrawningWarship>());
break;
}
}