Tôi có một đối tượng được gọi là Shape
có chứa trường public int[,] coordinate { get; set; }
.IComparable in C#
Tôi có một lớp riêng biệt có bộ sưu tập gồm Shape
đối tượng. Tại một điểm cụ thể, tôi muốn kiểm tra:
if(shapes.Contains(shape))
{
// DoSomething
}
Vì vậy, trong lớp Shape
Tôi đã thêm IComparable
tham khảo và chèn CompareTo
phương pháp:
public int CompareTo(Shape other)
{
return this.coordinate.Equals(other.coordinate);
}
Tuy nhiên tôi nhận được một lỗi:
Cannot implicitly convert type 'bool' to 'int'
Làm cách nào để tôi trả về cụm từ trả về để trả về int và không phải là bool khi đang thực hiện tại thời điểm này?
CẬP NHẬT
Nếu tôi thay đổi mã trở lại:
return this.coordinate.CompareTo(other.coordinate);
tôi nhận được các mesage lỗi sau:
Error 1 'ShapeD.Game_Objects.Shape' does not implement interface member 'System.IComparable.CompareTo(ShapeD.Game_Objects.Shape)'. 'ShapeD.Game_Objects.Shape.CompareTo(ShapeD.Game_Objects.Shape)' cannot implement 'System.IComparable.CompareTo(ShapeD.Game_Objects.Shape)' because it does not have the matching return type of 'int'. C:\Users\Usmaan\Documents\Visual Studio 2012\Projects\ShapeD\ShapeD\ShapeD\Game Objects\Shape.cs 10 18 ShapeD
Thông báo lỗi mới là khá đơn giản để giải quyết, thay đổi ** công khai CompareToTo (hình khác) ** to ** công khai CompareTo (đối tượng khác) ** nhưng sau đó bạn sẽ phải đối mặt với vấn đề đúc và CompareTo không tồn tại cho mảng đa dimentional. –