У меня есть объект с именем Shape
, который содержит поле public int[,] coordinate { get; set; }
.
У меня есть отдельный класс, в котором есть коллекция объектов Shape
. В определенный момент я хочу проверить:
if(shapes.Contains(shape))
{
// DoSomething
}
Итак, в классе Shape
я добавил ссылку IComparable
и вставил метод CompareTo
:
public int CompareTo(Shape other)
{
return this.coordinate.Equals(other.coordinate);
}
Однако я получаю сообщение об ошибке:
Cannot implicitly convert type 'bool' to 'int'
Как мне сформулировать return так, чтобы он возвращал int, а не bool, как это делается в данный момент?
ОБНОВЛЕНИЕ
Если я изменю код возврата на:
return this.coordinate.CompareTo(other.coordinate);
Я получаю следующее сообщение об ошибке:
Ошибка 1 «ShapeD.Game_Objects.Shape» не реализует элемент интерфейса «System.IComparable.CompareTo(ShapeD.Game_Objects.Shape)». «ShapeD.Game_Objects.Shape.CompareTo(ShapeD.Game_Objects.Shape)» не может реализовать «System.IComparable.CompareTo(ShapeD.Game_Objects.Shape)», поскольку у него нет соответствующего возвращаемого типа «int». C:\Users\Usmaan\Documents\Visual Studio 2012\Projects\ShapeD\ShapeD\ShapeD\Game Objects\Shape.cs 10 18 ShapeD