создание BoatCompareByType

This commit is contained in:
VictoriaPresnyakova 2022-12-04 16:26:07 +04:00
parent 49a4f5fc8f
commit 20b507a35f
4 changed files with 31 additions and 24 deletions

View File

@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Catamaran
{
internal class BoatCompareByType
{
}
}

View File

@ -206,6 +206,7 @@
</ItemGroup>
<ItemGroup>
<Compile Include="AbstractMap.cs" />
<Compile Include="BoatCompareByType.cs" />
<Compile Include="BoatNotFoundException.cs" />
<Compile Include="DrawingCatamaran.cs" />
<Compile Include="DrawingObjectBoat.cs" />

View File

@ -21,28 +21,28 @@ namespace Catamaran
return _catamaran?.GetCurrentPosition() ?? default;
}
public bool Equals(IDrawingObject ? other)
public bool Equals(IDrawingObject other)
{
if (other == null)
{
return false;
}
var otherCar = other as DrawingObjectBoat;
if (otherCar == null)
var otherBoat = other as DrawingObjectBoat;
if (otherBoat == null)
{
return false;
}
var car = _car.Car;
var otherCarCar = otherCar._car.Car;
if (car.Speed != otherCarCar.Speed)
var boat = _catamaran.Catamaran;
var otherBoatBoat = otherBoat._catamaran.Catamaran;
if (boat.Speed != otherBoatBoat.Speed)
{
return false;
}
if (car.Weight != otherCarCar.Weight)
if (boat.Weight != otherBoatBoat.Weight)
{
return false;
}
if (car.BodyColor != otherCarCar.BodyColor)
if (boat.BodyColor != otherBoatBoat.BodyColor)
{
return false;
}

View File

@ -11,7 +11,7 @@ namespace Catamaran
/// </summary>
/// <typeparam name="T"></typeparam>
internal class SetBoatsGeneric<T>
where T : class
where T : class, IEquatable<T>
{
/// <summary>
/// Массив объектов, которые храним
@ -40,15 +40,7 @@ namespace Catamaran
public int Insert(T boat)
{
for (int i = 0; i < _maxCount; i++)
{
if (i == Count)
{
_places.Insert(i, boat);
return i;
}
}
throw new StorageOverflowException(_maxCount);
return Insert(boat, 0);
}
/// <summary>
@ -59,13 +51,15 @@ namespace Catamaran
/// <returns></returns>
public int Insert(T boat, int position)
{
// TODO проверка позиции
// TODO проверка на уникальность
// проверка позиции
if (position < 0 || position >= _maxCount)
{
return -1 ;
}
// TODO проверка, что элемент массива по этой позиции пустой,если нет, то
// проверка, что элемент массива по этой позиции пустой,если нет, то
// проверка, что после вставляемого элемента в массиве есть пустой элемент
// сдвиг всех объектов, находящихся справа от позиции до первого пустого элемента
if (position == Count)
@ -89,7 +83,7 @@ namespace Catamaran
}
throw new StorageOverflowException(_maxCount);
}
// TODO вставка по позиции
// вставка по позиции
}
/// <summary>
/// Удаление объекта из набора с конкретной позиции
@ -98,9 +92,9 @@ namespace Catamaran
/// <returns></returns>
public T Remove(int position)
{
// TODO проверка позиции
// проверка позиции
if (position < 0 || position >= Count) throw new BoatNotFoundException();
// TODO удаление объекта из массива, присовив элементу массива значение null
// удаление объекта из массива, присовив элементу массива значение null
var result = _places[position];
_places.RemoveAt(position);
return result;
@ -112,7 +106,7 @@ namespace Catamaran
/// <returns></returns>
public T this[int position]
{
// TODO проверка позиции
// проверка позиции
get
{
if (position >= 0 && position < _maxCount && position < Count)