labWork_04 #5
@ -57,9 +57,10 @@ namespace ProjectLiner.CollectionGenericObjects
|
||||
/// <param name="company">Компания</param>
|
||||
/// <param name="Liner">Добавляемый объект</param>
|
||||
/// <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>
|
||||
@ -68,9 +69,9 @@ namespace ProjectLiner.CollectionGenericObjects
|
||||
/// <param name="company">Компания</param>
|
||||
/// <param name="position">Номер удаляемого объекта</param>
|
||||
/// <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>
|
||||
|
@ -22,7 +22,7 @@
|
||||
/// </summary>
|
||||
/// <param name="obj">Добавляемый объект</param>
|
||||
/// <returns>true - вставка прошла удачно, false - вставка не удалась</returns>
|
||||
bool Insert(T obj);
|
||||
int Insert(T obj);
|
||||
|
||||
/// <summary>
|
||||
/// Добавление объекта в коллекцию на конкретную позицию
|
||||
@ -30,14 +30,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>
|
||||
/// Получение объекта по позиции
|
||||
|
@ -12,7 +12,7 @@ namespace ProjectLiner.CollectionGenericObjects
|
||||
/// Массив объектов, которые храним
|
||||
/// </summary>
|
||||
private T?[] _collection;
|
||||
|
||||
|
||||
public int Count => _collection.Length;
|
||||
|
||||
public int SetMaxCount
|
||||
@ -48,63 +48,74 @@ namespace ProjectLiner.CollectionGenericObjects
|
||||
return _collection[position];
|
||||
}
|
||||
|
||||
public bool Insert(T obj)
|
||||
public int Insert(T obj)
|
||||
{
|
||||
for (int i = 0; i < Count; i++)
|
||||
{
|
||||
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)
|
||||
{
|
||||
if (position < 0 || position >= Count)
|
||||
return false;
|
||||
|
||||
if (_collection[position] == null)
|
||||
{
|
||||
_collection[position] = obj;
|
||||
return true;
|
||||
return -1;
|
||||
}
|
||||
|
||||
int temp = position + 1;
|
||||
while (temp < Count)
|
||||
if (_collection[position] != null)
|
||||
{
|
||||
if (_collection[temp] == null)
|
||||
bool pushed = false;
|
||||
for (int index = position + 1; index < Count; index++)
|
||||
{
|
||||
_collection[temp] = obj;
|
||||
return true;
|
||||
if (_collection[index] == null)
|
||||
{
|
||||
position = index;
|
||||
pushed = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
temp++;
|
||||
}
|
||||
|
||||
temp = position - 1;
|
||||
while (temp > 0)
|
||||
{
|
||||
if (_collection[temp] == null)
|
||||
if (!pushed)
|
||||
{
|
||||
_collection[temp] = obj;
|
||||
return true;
|
||||
for (int index = position - 1; index >= 0; index--)
|
||||
{
|
||||
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)
|
||||
return false;
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
if (_collection[position] == null) return null;
|
||||
|
||||
T? temp = _collection[position];
|
||||
_collection[position] = null;
|
||||
|
||||
return true;
|
||||
return temp;
|
||||
}
|
||||
}
|
||||
}
|
@ -63,7 +63,7 @@ namespace ProjectLiner
|
||||
return;
|
||||
}
|
||||
|
||||
if (_company + drawingLiner)
|
||||
if (_company + drawingLiner != -1)
|
||||
{
|
||||
MessageBox.Show("Объект добавлен");
|
||||
pictureBox.Image = _company.Show();
|
||||
@ -123,7 +123,7 @@ namespace ProjectLiner
|
||||
}
|
||||
|
||||
int pos = Convert.ToInt32(maskedTextBoxPosition.Text);
|
||||
if (_company - pos)
|
||||
if (_company - pos != null)
|
||||
{
|
||||
MessageBox.Show("Объект удален");
|
||||
pictureBox.Image = _company.Show();
|
||||
|
Loading…
Reference in New Issue
Block a user