我写了以下代码
class Program
{
static void Main(string[] args)
{
Circle c1 = new Circle(5);
Circle c2 = new Circle(10);
Console.WriteLine(c1.Area().ToString());
if (c1>c2)
{
}
}
}
public class Circle:System.IComparable<Circle>,IComparable
{
public int radius { get;private set; }
public double Area()
{
return Math.PI * radius * radius;
}
public Circle(int radius)
{
this.radius = radius;
}
public int CompareTo(Circle c)
{
if (c.Area() == this.Area())
return 0;
if (c.Area() > this.Area())
return 1;
return -1;
}
public int CompareTo(Object c)
{
if (((Circle)c).Area() == this.Area())
return 0;
if (((Circle)c).Area() > this.Area())
return 1;
return -1;
}
}
Run Code Online (Sandbox Code Playgroud)
但错误错误1运算符'>'无法应用于'ConsoleApplication1.Circle'和'ConsoleApplication1.Circle'类型的操作数
我已经实现了这两种方法,但无法确定错误
您需要重载>运算符才能执行您正在尝试的操作:
public static bool operator > (Circle c1, Circle c2)
{
return (c1.CompareTo(C2) > 0);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
268 次 |
| 最近记录: |