using System;
using GraphicsUtilities;

// Alias für Color einrichten, da sonst ein Namenskonflikt  zwischen
// GraphicsUtilities.Point und Sysxtem.Drawing.Point besteht
// Für Color muss ein Verweis auf System.Drawing.dll eingerichtet werden
using Color = System.Drawing.Color;

namespace MSPress.Entwicklerbuch
{
    class ColoredPoint : Point      // Ableitung von GraphicsUtilities.Point
    {
        // Neues Feld
        public Color C;

        // Konstruktoren
        public ColoredPoint(int x, int y, Color c) : base(x, y)
        {
            this.C = c;
        }
        public ColoredPoint(int x, int y) : base(x, y)
        {
            this.C = Color.Black;
        }

        // Geerbte ToString()-Version überschreiben
        public override string ToString()
        {
            return String.Format("({0},{1} {2})", X, Y, C);
        }
    }


    class Program
    {
        static void Main(string[] args)
        {
            // Instanziierung von GraphicsUtilities.Point
            Point p1 = new Point(10, 20);
            Point p2 = new Point(-1, 145);
            ColoredPoint p3 = new ColoredPoint(10, 20, Color.Aqua);
            ColoredPoint p4 = new ColoredPoint(-1, 145);

            Console.WriteLine(p1);     // Ausgabe: (X=10,Y=20)
            Console.WriteLine(p2);     // Ausgabe: (X=-1,Y=145)
            Console.WriteLine(p3);     // Ausgabe: (10,20 Color [Aqua])
            Console.WriteLine(p4);     // Ausgabe: (-1,145 Color [Black])
        }
    }
}
