diff --git a/HoistingCrane/HoistingCrane/CollectionGenericObjects/AbstractCompany.cs b/HoistingCrane/HoistingCrane/CollectionGenericObjects/AbstractCompany.cs index b6b8cd6..7ed15c5 100644 --- a/HoistingCrane/HoistingCrane/CollectionGenericObjects/AbstractCompany.cs +++ b/HoistingCrane/HoistingCrane/CollectionGenericObjects/AbstractCompany.cs @@ -42,9 +42,9 @@ namespace HoistingCrane.CollectionGenericObjects arr.SetMaxCount = GetMaxCount; } - public static DrawningTrackedVehicle operator +(AbstractCompany company, DrawningTrackedVehicle car) + public static int operator +(AbstractCompany company, DrawningTrackedVehicle car) { - return company.arr?.Insert(car) ?? null; + return company.arr?.Insert(car) ?? -1; } public static DrawningTrackedVehicle operator -(AbstractCompany company, int position) { diff --git a/HoistingCrane/HoistingCrane/CollectionGenericObjects/ICollectionGenericObjects.cs b/HoistingCrane/HoistingCrane/CollectionGenericObjects/ICollectionGenericObjects.cs index 679548b..adc295a 100644 --- a/HoistingCrane/HoistingCrane/CollectionGenericObjects/ICollectionGenericObjects.cs +++ b/HoistingCrane/HoistingCrane/CollectionGenericObjects/ICollectionGenericObjects.cs @@ -17,14 +17,14 @@ namespace HoistingCrane.CollectionGenericObjects /// /// /// - T? Insert(T obj); + int Insert(T obj); /// /// Добавление элемента в коллекцию на определенную позицию /// /// /// /// - T? Insert(T obj, int position); + int Insert(T obj, int position); /// /// Удаление элемента из коллекции по его позиции /// diff --git a/HoistingCrane/HoistingCrane/CollectionGenericObjects/ListGenericObjects.cs b/HoistingCrane/HoistingCrane/CollectionGenericObjects/ListGenericObjects.cs index ba05f0a..3af71fa 100644 --- a/HoistingCrane/HoistingCrane/CollectionGenericObjects/ListGenericObjects.cs +++ b/HoistingCrane/HoistingCrane/CollectionGenericObjects/ListGenericObjects.cs @@ -39,7 +39,7 @@ namespace HoistingCrane.CollectionGenericObjects public T? Get(int position) { // TODO проверка позиции - if(position >= 0 && position < list.Count) + if(position >= 0 && position < _maxCount) { return list[position]; } @@ -47,7 +47,7 @@ namespace HoistingCrane.CollectionGenericObjects } - public T? Insert(T obj) + public int Insert(T obj) { // TODO проверка, что не превышено максимальное количество элементов // TODO вставка в конец набора @@ -55,23 +55,34 @@ namespace HoistingCrane.CollectionGenericObjects { return Insert(obj, 0); } - return null; + return -1; } - public T? Insert(T obj, int position) + public int Insert(T obj, int position) { // TODO проверка, что не превышено максимальное количество элементов // TODO проверка позиции // TODO вставка по позиции - if(position >= 0 && position < list.Count) + if(position >= 0 && position < _maxCount) { if (list[position] == null) { list.Add(obj); - return list[position]; + return position; + } + else + { + if (Insert(obj, position + 1) != -1) + { + return position; + } + if (Insert(obj, position - 1) != -1) + { + return position; + } } } - return null; + return -1; } diff --git a/HoistingCrane/HoistingCrane/CollectionGenericObjects/MassivGenericObjects.cs b/HoistingCrane/HoistingCrane/CollectionGenericObjects/MassivGenericObjects.cs index bd5beca..ef399d3 100644 --- a/HoistingCrane/HoistingCrane/CollectionGenericObjects/MassivGenericObjects.cs +++ b/HoistingCrane/HoistingCrane/CollectionGenericObjects/MassivGenericObjects.cs @@ -31,7 +31,7 @@ namespace HoistingCrane.CollectionGenericObjects return null; } - public T? Insert(T obj) + public int Insert(T obj) { for (int i = 0; i < Count; i++) { @@ -40,34 +40,34 @@ namespace HoistingCrane.CollectionGenericObjects return Insert(obj, 0); } } - return null; + return -1; } - public T? Insert(T obj, int position) + public int Insert(T obj, int position) { //todo Проверка позиции if (position < 0 || position > Count) { - return null; + return -1; } if (arr[position] == null) { arr[position] = obj; - return arr[position]; + return position; } else { - if (Insert(obj, position + 1) != null) + if (Insert(obj, position + 1) != -1) { - return arr[position + 1]; + return position; } - if (Insert(obj, position - 1) != null) + if (Insert(obj, position - 1) != -1) { - return arr[position - 1]; + return position; } } - return null; + return -1; } public T? Remove(int position) diff --git a/HoistingCrane/HoistingCrane/FormCarCollection.cs b/HoistingCrane/HoistingCrane/FormCarCollection.cs index 4d1678b..3dc984a 100644 --- a/HoistingCrane/HoistingCrane/FormCarCollection.cs +++ b/HoistingCrane/HoistingCrane/FormCarCollection.cs @@ -52,7 +52,7 @@ namespace HoistingCrane default: return; } - if ((_company + drawning) != null) + if ((_company + drawning) != -1) { MessageBox.Show("Объект добавлен"); pictureBox.Image = _company.Show();