This commit is contained in:
Daniya_Youdakova 2022-12-25 17:22:30 +04:00
parent f0436685a8
commit 7a2b6d4d45
2 changed files with 35 additions and 11 deletions

View File

@ -1,6 +1,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Numerics;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
@ -46,16 +47,16 @@ namespace AircraftCarrier
/// <returns></returns> /// <returns></returns>
public int Insert(T AircraftCarrier, int position) public int Insert(T AircraftCarrier, int position)
{ {
// проверка позиции // TODO проверка позиции
if (!CorrectPos(position)) if (Count == _maxCount)
{ {
return -1; throw new StorageOverflowException(_maxCount);
} }
// вставка по позиции if (position < 0 || position > _maxCount) return -1;
// TODO вставка по позиции
_places.Insert(position, AircraftCarrier); _places.Insert(position, AircraftCarrier);
return position; return position;
} }
/// <summary> /// <summary>
/// Удаление объекта из набора с конкретной позиции /// Удаление объекта из набора с конкретной позиции
/// </summary> /// </summary>
@ -63,13 +64,14 @@ namespace AircraftCarrier
/// <returns></returns> /// <returns></returns>
public T Remove(int position) public T Remove(int position)
{ {
// проверка позиции // TODO проверка позиции
if (!CorrectPos(position)) if (position >= Count || position < 0)
return null; {
// удаление объекта из массива, присовив элементу массива значение null throw new AircraftCarrierNotFoundException(position);
T temp = _places[position]; }
T aircraftcarrier = _places[position];
_places.RemoveAt(position); _places.RemoveAt(position);
return temp; return aircraftcarrier;
} }
/// <summary> /// <summary>
/// Получение объекта из набора по позиции /// Получение объекта из набора по позиции

View File

@ -0,0 +1,22 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
namespace AircraftCarrier
{
[Serializable]
internal class StorageOverflowException : ApplicationException
{
public StorageOverflowException(int count) : base($"В наборе превышено допустимое количество: { count}") { }
public StorageOverflowException() : base() { }
public StorageOverflowException(string message) : base(message) { }
public StorageOverflowException(string message, Exception exception) :
base(message, exception)
{ }
protected StorageOverflowException(SerializationInfo info,
StreamingContext contex) : base(info, contex) { }
}
}