Финальное закрепление ветки

This commit is contained in:
gettterot 2024-03-24 16:26:53 +04:00
parent dac8a3ec17
commit 9aec819091
4 changed files with 50 additions and 38 deletions

View File

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

View File

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

View File

@ -12,7 +12,7 @@ namespace ProjectLiner.CollectionGenericObjects
/// Массив объектов, которые храним /// Массив объектов, которые храним
/// </summary> /// </summary>
private T?[] _collection; private T?[] _collection;
public int Count => _collection.Length; public int Count => _collection.Length;
public int SetMaxCount public int SetMaxCount
@ -48,63 +48,74 @@ namespace ProjectLiner.CollectionGenericObjects
return _collection[position]; return _collection[position];
} }
public bool Insert(T obj) public int Insert(T obj)
{ {
for (int i = 0; i < Count; i++) for (int i = 0; i < Count; i++)
{ {
if (_collection[i] == null) if (_collection[i] == null)
{ {
_collection[i] = obj; _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)
{ {
if (position < 0 || position >= Count) if (position < 0 || position >= Count)
return false;
if (_collection[position] == null)
{ {
_collection[position] = obj; return -1;
return true;
} }
int temp = position + 1; if (_collection[position] != null)
while (temp < Count)
{ {
if (_collection[temp] == null) bool pushed = false;
for (int index = position + 1; index < Count; index++)
{ {
_collection[temp] = obj; if (_collection[index] == null)
return true; {
position = index;
pushed = true;
break;
}
} }
temp++;
}
temp = position - 1; if (!pushed)
while (temp > 0)
{
if (_collection[temp] == null)
{ {
_collection[temp] = obj; for (int index = position - 1; index >= 0; index--)
return true; {
if (_collection[index] == null)
{
position = index;
pushed = true;
break;
}
}
}
if (!pushed)
{
return position;
} }
temp--;
} }
return false; _collection[position] = obj;
return position;
} }
public bool Remove(int position) public T? Remove(int position)
{ {
if (position < 0 || position >= Count) if (position < 0 || position >= Count)
return false; {
return null;
}
if (_collection[position] == null) return null;
T? temp = _collection[position];
_collection[position] = null; _collection[position] = null;
return temp;
return true;
} }
} }
} }

View File

@ -63,7 +63,7 @@ namespace ProjectLiner
return; return;
} }
if (_company + drawingLiner) if (_company + drawingLiner != -1)
{ {
MessageBox.Show("Объект добавлен"); MessageBox.Show("Объект добавлен");
pictureBox.Image = _company.Show(); pictureBox.Image = _company.Show();
@ -123,7 +123,7 @@ namespace ProjectLiner
} }
int pos = Convert.ToInt32(maskedTextBoxPosition.Text); int pos = Convert.ToInt32(maskedTextBoxPosition.Text);
if (_company - pos) if (_company - pos != null)
{ {
MessageBox.Show("Объект удален"); MessageBox.Show("Объект удален");
pictureBox.Image = _company.Show(); pictureBox.Image = _company.Show();