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'
したがって、現時点ではboolではなくintを返すように、returnをどのように表現すればよいでしょうか。
アップデート
戻りコードを次のように変更した場合:
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