程序正在执行,但我对接口有一些了解,以及如何使用它们。在CompareTo方法实现中,我发现了目标和双差异,我完全无法得到它们。直到CompareTo方法我才明白。
class Polygon
public virtual void Draw()
{
Console.WriteLine("Drawing Polygon");
}
interface IComparable
{
int CompareTo(object obj);
}
class Program:Polygon,IComparable
{
private double Length { get; set; }
private double Width { get; set; }
public override void Draw()
{
Console.WriteLine("Drawing: Rectangle");
}
public double GetArea()
{
return Length * Width;
}
public int CompareTo(object obj)
{
if (obj == null)
return 1;
if (!(obj is Program))
throw new ArgumentException();
Program target = (Program)obj;
double diff = this.GetArea() - target.GetArea();
if (diff == 0)
return 0;
else if (diff > 0)
return 1;
else return -1;
}
static void Main()
{
Program rect1 = new Program { Length = 10, Width = 20 };
Program rect2 = new Program { Length = 100, Width = 200 };
Console.WriteLine(rect1.CompareTo(rect2));
Console.ReadKey();
}
}
答案 0 :(得分:4)
target
是Program
类型的变量,它是一个类。该变量在函数CompareTo
内,因此它只能在函数内引用并在声明和定义之后引用,即:Program target = (Program)obj;
您似乎需要重新阅读C#中的入门教材或在线课程。