problemmer med klasse script
Hej jeg sidder lige og prøver at strikke noget af alt det sammen jeg har læst omkringmen kan ikke helt forstå hvad gør jeg galt i dette script?
public abstract class shape : IComparable
{
public double Area;
public int CompareTo(object o)
{
shape temp = (shape)o;
return temp.Area.CompareTo(Area);
}
public abstract void GetArea();
}
public class circle : shape
{
const double PI = 3.14;
private int radius;
public circle( int radius )
{
this.radius = radius;
this.GetArea();
}
public override void GetArea()
{
Area = (radius * 2) * PI;
}
}
public class square : shape
{
private int width;
private int height;
public square(int w, int h)
{
this.width = w;
this.height = h;
this.GetArea();
}
public override void GetArea()
{
Area = this.width * this.height;
}
}
class Program
{
static void Main(string[] args)
{
shape[] circles = new shape[10];
circles[0] = new circle(10);
circles[1] = new circle(14);
circles[2] = new circle(40);
circles[3] = new circle(20);
circles[4] = new circle(30);
Array.Sort(circles);
display(circles);
Console.Read();
}
static void display(shape[] shapes)
{
for (int i = 0; i < shapes.Length; i++)
{
Console.Write(shapes[i].Area);
}
}
}
den skriver at i min Console.Write(shapes[i].Area);
Objektreferencen er ikke indstillet til en forekomst af et objekt.
det jeg prøver at lave er 2 klasser circle / square som begge har GetArea() som smider en double Area value og så vil jeg gerne kunne oprette circles / squares og senere lave en Array.Sort() på dem
