Добавление ошибок

This commit is contained in:
GokaPek 2023-10-11 09:12:20 +04:00
parent b22939ef87
commit e875215a6f
3 changed files with 49 additions and 22 deletions

View File

@ -44,7 +44,7 @@ namespace SelfPropelledArtilleryUnit
if (_SPAUs + form.SelectedSPAU)
{
MessageBox.Show("Объект добавлен");
//pictureBoxCollection.Image = _SPAUs.ShowSPAUs();
pictureBoxCollection.Image = _SPAUs.ShowSPAUs();
}
else
{
@ -68,7 +68,7 @@ namespace SelfPropelledArtilleryUnit
if (_SPAUs - pos != null)
{
MessageBox.Show("Объект удален");
//pictureBoxCollection.Image = _SPAUs.ShowSPAUs();
pictureBoxCollection.Image = _SPAUs.ShowSPAUs();
}
else
{
@ -83,7 +83,7 @@ namespace SelfPropelledArtilleryUnit
private void ButtonRefreshCollection_Click(object sender, EventArgs
e)
{
//pictureBoxCollection.Image = _SPAUs.ShowSPAUs();
pictureBoxCollection.Image = _SPAUs.ShowSPAUs();
}
}
}

View File

@ -56,13 +56,14 @@ namespace SelfPropelledArtilleryUnit.Generics
/// <param name="collect"></param>
/// <param name="obj"></param>
/// <returns></returns>
public static bool operator +(SPAUGenericCollection<T, U> collect, T? obj)
public static SPAUGenericCollection<T, U> operator +(SPAUGenericCollection<T, U> collect, T? obj)
{
if (obj == null)
{
return false;
return collect;
}
return collect?._collection.Insert(obj) ?? false;
collect._collection.Insert(obj);
return collect;
}
/// <summary>
/// Перегрузка оператора вычитания
@ -92,7 +93,7 @@ namespace SelfPropelledArtilleryUnit.Generics
/// Вывод всего набора объектов
/// </summary>
/// <returns></returns>
public Bitmap ShowCars()
public Bitmap ShowSPAUs()
{
Bitmap bmp = new(_pictureWidth, _pictureHeight);
Graphics gr = Graphics.FromImage(bmp);

View File

@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
@ -32,12 +33,22 @@ namespace SelfPropelledArtilleryUnit.Generics
/// <summary>
/// Добавление объекта в набор
/// </summary>
/// <param name="car">Добавляемый автомобиль</param>
/// <param name="spau">Добавляемый автомобиль</param>
/// <returns></returns>
public bool Insert(T car)
public bool Insert(T spau)
{
// TODO вставка в начало набора
return true;
try
{
for (int i = _places.Length - 1; i > 0; i--)
{
_places[i] = _places[i - 1];
}
_places[0] = spau;
return true;
}
catch {
return false;
}
}
/// <summary>
/// Добавление объекта в набор на конкретную позицию
@ -45,14 +56,25 @@ namespace SelfPropelledArtilleryUnit.Generics
/// <param name="car">Добавляемый автомобиль</param>
/// <param name="position">Позиция</param>
/// <returns></returns>
public bool Insert(T car, int position)
public bool Insert(T spau, int position)
{
// TODO проверка позиции
// TODO проверка, что элемент массива по этой позиции пустой, если нет, то
// проверка, что после вставляемого элемента в массиве есть пустой элемент
// сдвиг всех объектов, находящихся справа от позиции до первого пустого элемента
// TODO вставка по позиции
_places[position] = car;
if (position < 0 || position >= _places.Count() || spau == null)
{
return false;
}
if (_places[position] == null)
{
return false;
}
int positionNull = Array.FindIndex(_places, position, x => x == null);
if (positionNull == -1)
return false;
for (int i = positionNull; i > position; i--)
{
_places[i] = _places[i - 1];
}
_places[position] = spau;
return true;
}
/// <summary>
@ -62,9 +84,12 @@ namespace SelfPropelledArtilleryUnit.Generics
/// <returns></returns>
public bool Remove(int position)
{
// TODO проверка позиции
// TODO удаление объекта из массива, присвоив элементу массива значение null
return true;
if (position < 0 || position >= _places.Count())
return false;
_places[position] = null;
return true;
}
/// <summary>
/// Получение объекта из набора по позиции
@ -73,7 +98,8 @@ namespace SelfPropelledArtilleryUnit.Generics
/// <returns></returns>
public T? Get(int position)
{
// TODO проверка позиции
if (position < 0 || position >= _places.Count())
return null;
return _places[position];
}
}