プログラムは実行されていますが、私はインターフェイスとその使い方について少し知識があります。 CompareToメソッドの実装では、targetとdouble diffが見つかりました。私はそれを得ることができませんでした。私はCompareToメソッドまで理解していました。C#のターゲットとは何ですか?どこでターゲットを使用できますか?
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();
}
}
'target'は' Program'にキャストした後の 'obj'への参照で、' GetArea'にアクセスすることができます。 – juharr