Example #1
0
    static void Main(string[] args)
    {
        // Testen der Objektzähler
        Console.WriteLine("TEST DER OBJEKTZÄHLER");
        Console.WriteLine("----------------------------------");
        Rectangle rect1 = new Rectangle();
        Rectangle rect2 = new Rectangle();
        Rectangle rect3 = new Rectangle();
        Circle kreis1 = new Circle();
        Circle kreis2 = new Circle();
        rect1.Dispose();
        rect2.Dispose();
        kreis1.Dispose();
        Circle kreis3 = new Circle();
        Console.WriteLine("Alle Objekte: {0}", GeometricObject.CountGeometricObjects);
        Console.WriteLine("Alle Rectangle: {0}", Rectangle.CountRectangles);
        Console.WriteLine("Alle kreise: {0}", Circle.CountCircles);

        Console.WriteLine("\nTEST DER METHODE ARRAY.SORT");
        Console.WriteLine("----------------------------------");
        GeometricObject[] liste = new GeometricObject[5];
        liste[0] = new Circle(88);
        liste[1] = new Rectangle(12, 90);
        liste[2] = new GraphicCircle(50);
        liste[3] = new Rectangle(10, 96);
        liste[4] = new GraphicRectangle(3, 6);

        Array.Sort(liste);
        foreach (GeometricObject item in liste)
            Console.WriteLine(item.ToString());
      Console.ReadLine();
    }
Example #2
0
File: Program.cs Project: Jaki13/cs
        static void Main(string[] args)
        {
            Circle kreis = new Circle();

            kreis.InvalidRadius += kreis_InvalidRadius;
            kreis.Radius         = -10;
            kreis.MoveXY(new Point(3, 4));
            Console.WriteLine(kreis.ToString());

            GraphicCircle kreisgr = new GraphicCircle();

            kreisgr.InvalidRadius += kreis_InvalidRadius;
            kreisgr.Radius         = -13;
            Console.WriteLine(kreisgr.ToString());

            Rectangle rec = new Rectangle();

            rec.InvalidBreite += Rec_InvalidBreite;
            rec.InvalidLänge  += Rec_InvalidLänge;
            rec.Breite         = -3;
            rec.Länge          = -1;
            Console.WriteLine(rec.ToString());

            GraphicRectangle recgr = new GraphicRectangle();

            recgr.InvalidBreite += Rec_InvalidBreite;
            recgr.InvalidLänge  += Rec_InvalidLänge;
            recgr.Breite         = -3;
            recgr.Länge          = -1;
            Console.WriteLine(recgr.ToString());

            Console.ReadLine();
        }
        static void Main(string[] args)
        {
            Circle kreis = new Circle();

            kreis.Radius      = 12;
            kreis.XCoordinate = 100;
            kreis.YCoordinate = 100;

            kreis.Move(20, 60);

            Circle kreis2 = new Circle();

            kreis2.Radius = 100;

            if (kreis.Bigger(kreis2))
            {
                Console.WriteLine("Kreis 1 ist grösser als Kreis 2");
            }
            else
            {
                Console.WriteLine("Kreis 2 ist grösser als Kreis 1");
            }

            // parameter der methode DoSomething referenziert auf die Variable via "ref" und ist nicht lokal.
            int value = 3;

            DoSomethingWithRef(ref value);
            // out macht dasselbe, mit dem unterschied, dass der übergebene parameter nicht initialisiert werden muss. Per Out muss die variable auf jeden fall geändert werden.
            DoSomethingWithOut(out value);

            // Methode mit params
            Console.WriteLine("Add Routine mit params: {0}", Add(5, 5, 4, 4, 3, 2, 3, 3, 4, 5, 5, 5, 5, 5, 5, 5, 3, 5, 5));

            // Methode mit optionalem Parameter
            OptionalParam("Pascal", 5);

            // Ausgabe:
            Console.WriteLine("Der Kreisradius beträgt {0}", kreis.Radius);
            Console.WriteLine("Die Fläche beträgt {0}", kreis.GetArea());
            Console.WriteLine("Der Umfang beträgt {0}", kreis.GetCircumference());
            Console.WriteLine("Der Kreis befindet sich auf X: {0} Y: {1}", kreis.XCoordinate, kreis.YCoordinate);
            Console.WriteLine("{0}", value);


            // GraphicCircle
            GraphicCircle gCircle = new GraphicCircle();

            gCircle.Draw();

            Console.WriteLine("Anzahl der Kreise = {0}", GraphicCircle.CountCircles);

            Console.ReadKey();
        }
        static void Main(string[] args)
        {
            Circle kreis = new Circle();
            kreis.Radius = 12;
            kreis.XCoordinate = 100;
            kreis.YCoordinate = 100;

            kreis.Move(20, 60);

            Circle kreis2 = new Circle();
            kreis2.Radius = 100;

            if (kreis.Bigger(kreis2))
               Console.WriteLine("Kreis 1 ist grösser als Kreis 2");
            else
               Console.WriteLine("Kreis 2 ist grösser als Kreis 1");

            // parameter der methode DoSomething referenziert auf die Variable via "ref" und ist nicht lokal.
            int value = 3;
            DoSomethingWithRef(ref value);
            // out macht dasselbe, mit dem unterschied, dass der übergebene parameter nicht initialisiert werden muss. Per Out muss die variable auf jeden fall geändert werden.
            DoSomethingWithOut(out value);

            // Methode mit params
            Console.WriteLine("Add Routine mit params: {0}", Add(5, 5, 4, 4, 3, 2, 3, 3, 4, 5, 5, 5, 5, 5, 5, 5, 3, 5, 5));

            // Methode mit optionalem Parameter
            OptionalParam("Pascal", 5);

            // Ausgabe:
            Console.WriteLine("Der Kreisradius beträgt {0}", kreis.Radius);
            Console.WriteLine("Die Fläche beträgt {0}", kreis.GetArea());
            Console.WriteLine("Der Umfang beträgt {0}", kreis.GetCircumference());
            Console.WriteLine("Der Kreis befindet sich auf X: {0} Y: {1}", kreis.XCoordinate, kreis.YCoordinate);
            Console.WriteLine("{0}", value);

            // GraphicCircle
            GraphicCircle gCircle = new GraphicCircle();
            gCircle.Draw();

            Console.WriteLine("Anzahl der Kreise = {0}", GraphicCircle.CountCircles);

            Console.ReadKey();
        }
Example #5
0
        static void Main(string[] args)
        {
            //Circle kreis = new Circle();
            //kreis.Radius = 12;

            //// Kreisfläche abrufen

            //double area = kreis.GetArea();
            //Console.WriteLine("Fläche = {0}", area);

            //// Kreisumfang abrufen

            //Console.WriteLine("Umfang = {0}", kreis.GetCircumference());
            //Console.ReadLine();


            //Circle kreis = new Circle();
            //kreis.XCoordinate = -100;
            //kreis.YCoordinate = 90;
            //kreis.Move(120, -200);
            //Console.WriteLine("X = {0} und Y = {1}", kreis.XCoordinate, kreis.YCoordinate);
            //Console.ReadLine();

            //Circle kreis1 = new Circle();
            //kreis1.Radius = 12;
            //Circle kreis2 = new Circle();
            //kreis2.Radius = 23;

            //if (kreis1.Bigger(kreis2) == -1)
            //    Console.WriteLine("Objekt 'kreis1' ist kleiner als Objekt 'kreis2'");
            //Console.ReadLine();

            GraphicCircle gc = new GraphicCircle();

            Console.WriteLine("Anzahl der Kreise = {0}", GraphicCircle.CountCircles);
            Console.ReadLine();
        }
Example #6
0
        static void Main(string[] args)
        {
            // Testen der Objektzähler
            Console.WriteLine("TEST DER OBJEKTZÄHLER");
            Console.WriteLine("----------------------------------");
            Rectangle rect1  = new Rectangle();
            Rectangle rect2  = new Rectangle();
            Rectangle rect3  = new Rectangle();
            Circle    kreis1 = new Circle();
            Circle    kreis2 = new Circle();

            rect1.Dispose();
            rect2.Dispose();
            kreis1.Dispose();
            Circle kreis3 = new Circle();

            Console.WriteLine("Alle Objekte: {0}", GeometricObject.CountGeometricObjects);
            Console.WriteLine("Alle Rectangle: {0}", Rectangle.CountRectangles);
            Console.WriteLine("Alle kreise: {0}", Circle.CountCircles);

            Console.WriteLine("\nTEST DER METHODE ARRAY.SORT");
            Console.WriteLine("----------------------------------");
            GeometricObject[] liste = new GeometricObject[5];
            liste[0] = new Circle(88);
            liste[1] = new Rectangle(12, 90);
            liste[2] = new GraphicCircle(50);
            liste[3] = new Rectangle(10, 96);
            liste[4] = new GraphicRectangle(3, 6);

            Array.Sort(liste);
            foreach (GeometricObject item in liste)
            {
                Console.WriteLine(item.ToString());
            }
            Console.ReadLine();
        }
Example #7
0
        static void Main(string[] args)
        {
            Circle kreis = new Circle();

            // kreis wird zu keinem Zeitpunkt initialisiert,
            // und daher bricht die Kompilierung mit einer Fehlermeldung ab.
            // Eine Objektvariable kann nur benutzt werden, wenn sie initialisiert ist.
            if (kreis == null)
            {
                // die Variable "kreis" referenziert kein Objekt
                Console.WriteLine("Das Objekt existiert nicht!");
                kreis = new Circle();
            }
            else
            {
                // "kreis" ist eine gültige Objektreferenz
                Console.WriteLine("Das Objekt existiert");
            }
            // weitere Anweisungen

            Circle kreis1 = new Circle();
            Circle kreis2 = kreis1;

            kreis1.Radius = 10;
            Console.WriteLine(kreis2.Radius);
            kreis2.Radius = 20;
            kreis2        = null;
            Console.WriteLine(kreis1.Radius);

            kreis.Radius = 12;
            Console.WriteLine("Der Kreisradius beträgt {0}", kreis.Radius);
            kreis = null;

            Circle kreis3 = new Circle();

            kreis3.XCoordinate = 50;
            kreis3.YCoordinate = 25;
            kreis3.Radius      = 12;
            int    height = 30;
            double volume = kreis3.GetArea() * height;

            Console.WriteLine(volume);

            Circle kreis4 = new Circle();

            kreis4.XCoordinate = -100;
            kreis4.YCoordinate = 90;
            kreis4.Move(120, -200);
            Console.WriteLine("x= " + kreis4.XCoordinate + ";y= " + kreis4.YCoordinate);

            // Bigger Rückgaben int
            // 1 wenn Radius des aufrufenden Objekts > übergebener Objekt.Radius
            // -1 wenn Radius des aufrufenden Objekts < übergebener Objekt.Radius
            // 0 wenn beide gleich
            Circle kreis5 = new Circle();

            kreis5.Radius = 23; // 12;
            Circle kreis6 = new Circle();

            kreis6.Radius = 23;
            if (kreis5.Bigger(kreis6) == -1)
            {
                Console.WriteLine("Objekt 'kreis5' ist kleiner als Objekt 'kreis6'");
            }
            if (kreis5.Bigger(kreis6) == 1)
            {
                Console.WriteLine("Objekt 'kreis5' ist größer als Objekt 'kreis6'");
            }
            if (kreis5.Bigger(kreis6) == 0)
            {
                Console.WriteLine("Objekt 'kreis5' und Objekt 'kreis6' sind gleich groß");
            }

            // Benannte Argumente
            kreis5.Move(dx: 100, dy: -200);
            kreis5.Move(dy: 300, dx: -100);


            // Anwendung der Klasse Demo
            int[] array0   = { 3, 6, 9, 4, 13, 22, 2, 29, 17 };
            int[] array    = new int[] { 3, 6, 9, 4, 13, 22, 2, 29, 17 };
            Demo  demo     = new Demo();
            int   maxValue = demo.GetMaxValue(array);

            Console.WriteLine("Maximalwert = {0}", demo.GetMaxValue(array));

            // Params
            //int[] list = { 1, 2, 3 }; Console.WriteLine(demo.Add(15, 19, list));
            Console.WriteLine(demo.Add(15, 19, 1, 2, 3));
            Console.WriteLine(demo.Add(1, 2, 3, 4, 5, 6));
            Console.WriteLine(demo.Add(95));
            Console.WriteLine(demo.Add(95, 5));
            Console.WriteLine(demo.Add());


            // Übergabe von Objekten
            Demo1 object1 = new Demo1();        // Wert = 1
            Demo2 object2 = new Demo2();        // Wert = 2

            object2.ChangeValue(object1);
            Console.WriteLine("object1.Value sollte 1 sein: = " + object1.Value);
            object2.ChangeValue(ref object1);
            Console.WriteLine("object1.Value sollte 2 sein: = " + object1.Value);

            // Konstuktor-Weiterleitung
            Circle kreis7 = new Circle(12, -100, 250);

            // Vereinfachte Objektinitialisierung Kap 3.6.7 !!! KLAPPT NICHT !!!
            Circle kreis8 = new Circle {
                YCoordinate = 2, XCoordinate = -7, Radius = 2
            };


            // Konstanten
            Console.WriteLine(Mathematics.PI);

            // Klassenvariable Kap 3.9.1
            Console.WriteLine("CountCircles " + Circle.CountCircles);

            // Aufruf statischer Klassen Kap 3.9.4
            Console.WriteLine(Mathematics.Add(2, 77, 99));
            Console.WriteLine(Mathematics.Subtract(2, 77, 99));

            Singleton singleton1 = Singleton.Instance;

            singleton1.Value = 128;
            Singleton singleton2 = Singleton.Instance;

            Console.WriteLine("Singleton " + singleton1.Value);
            Ausgabe.WriteLine("Singleton " + singleton1.Value);     // Alias Kap 3.10.4

            GraphicCircle gCircle = new GraphicCircle();

            // mit base: 3-fach Parameterkonstruktor von Circle und Standardkonstruktor von GraphicCircle
            // mit this: 3-fach Parameterkonstruktor von Circle und Standardkonstruktor von Circle,
            //   dann 3-fach Parameterkonstruktor von GraphicCircle und Standardkonstruktor von GraphicCircle

            gCircle.XCoordinate = 25;

            Console.WriteLine("gCircle.XCoordinate = " + gCircle.XCoordinate);
            Console.WriteLine("Anzahl der Kreise = {0}", GraphicCircle.CountCircles);


            SubClass2 subi2 = new SubClass2();

            subi2.DoSomething();

            Flugzeug flg = new Flugzeug();

            flg.Spannweite = 70;
            //            flg.Starten();
            flg.DoSomething(flg);

            Hubschrauber hubi = new Hubschrauber();

            hubi.Rotor = 45;
//            hubi.Starten();
            hubi.DoSomething(hubi);


            Luftfahrzeug[] arr = new Luftfahrzeug[4];
            arr[0] = new Flugzeug();
            arr[1] = new Hubschrauber();
            arr[2] = new Hubschrauber();
            arr[3] = new Flugzeug();
            foreach (Luftfahrzeug temp in arr)
            {
                temp.Starten();
            }

            // Kap 5.2 Event
            Circle eventKreis = new Circle();

            // Kap 5.2.2 Abonnieren des Ereignisses: Eventbezeichner += Ereignishandler (public static)
            // eventKreis.InvalidMeasure += new InvalidMeasureEventHandler(kreis_InvalidMeasure);  // 5.
            eventKreis.InvalidMeasure += kreis_InvalidMeasure;
            eventKreis.Radius          = -2;



            // -------------------------------------------
            Console.ReadLine();
        }
Example #8
0
        static void Main(string[] args)
        {
            Circle kreis1 = new Circle(10);
            Circle kreis2 = new Circle(15, -140, 440);

            // Allgemeine Daten ausgeben
            Console.WriteLine("Allgemeine Daten:");
            Console.WriteLine(new string('=', 17)); // zeichnet Linie
            Console.WriteLine("kreis1 - Radius:      {0}", kreis1.Radius);
            Console.WriteLine("       - XKoordinate: {0}", kreis1.XCoordinate);
            Console.WriteLine("       - YKoordinate: {0}", kreis1.YCoordinate);
            Console.WriteLine();
            Console.WriteLine("kreis2 - Radius:      {0}", kreis2.Radius);
            Console.WriteLine("       - XKoordinate: {0}", kreis2.XCoordinate);
            Console.WriteLine("       - YKoordinate: {0}", kreis2.YCoordinate);
            Console.WriteLine();

            // Anzahl der Circle-Objekte ausgeben
            Console.WriteLine("Anzahl 'Circle'-Objekte: {0}", Circle.CountCircles);
            Console.WriteLine();

            // Test: Fläche und Umfang
            Console.WriteLine("Fläche und Umfang des Objekts 'kreis1'");
            Console.WriteLine(new string('-', 40));
            Console.WriteLine("Fläche kreis1: {0}", kreis1.GetArea());
            Console.WriteLine("Umfang kreis1: {0}", kreis1.GetCircumference());
            Console.WriteLine();

            // Test: Fläche und Umfang ==  kreis2
            Console.WriteLine("Fläche und Umfang des Objekts 'kreis2'");
            Console.WriteLine(new string('-', 40));
            Console.WriteLine("Fläche kreis2: {0}", kreis2.GetArea());
            Console.WriteLine("Umfang kreis2: {0}", kreis2.GetCircumference());
            Console.WriteLine();

            
            // Test: Verschiebung kreis1
            Console.WriteLine("Verschiebung des Objekts 'kreis1' um dx=150 / dy=400");
            Console.WriteLine(new string('-', 40));
            Console.WriteLine("X (alt): {0} / Y (alt): {1}", kreis1.XCoordinate, kreis1.YCoordinate);
            kreis1.Move(150, 400);
            Console.WriteLine("X (neu): {0} / Y (neu): {1}", kreis1.XCoordinate, kreis1.YCoordinate);
            Console.WriteLine();

            // Test: Verschiebung kreis1 zum 2. Mal
            Console.WriteLine("Verschiebung des Objekts 'kreis1' zzum 2. Mal um dx=350 / dy=600");
            Console.WriteLine(new string('-', 40));
            Console.WriteLine("X (alt): {0} / Y (alt): {1}", kreis1.XCoordinate, kreis1.YCoordinate);
            kreis1.Move(350, 600);
            Console.WriteLine("X (neu): {0} / Y (neu): {1}", kreis1.XCoordinate, kreis1.YCoordinate);
            Console.WriteLine();


            // Test: Größenvergleich
            if (kreis1.Bigger(kreis2) == 1)
                Console.WriteLine("Objekt 'kreis1' ist größer als Objekt 'kreis2'");
            else if (kreis1.Bigger(kreis2) == 0)
                Console.WriteLine("Objekt 'kreis1' ist gleich Objekt 'kreis2'");
            else
                Console.WriteLine("Objekt 'kreis1' ist kleiner Objekt 'kreis2'");

            Console.WriteLine();

            // Test Anzahl Kreisobjekte (Listung 4.3)
            GraphicCircle gc = new GraphicCircle();
            Console.WriteLine("Anzahl 'Circle'-Objekte mit zusätzlich GraphicCircle: {0}", Circle.CountCircles);
            Console.WriteLine();
            Console.WriteLine();


            Console.WriteLine("============ Rectangles ===============================");
            Console.WriteLine();
            
            Rectangle rect1 = new Rectangle(10, 200);
            Rectangle rect2 = new Rectangle(50, 400, 5, -100);

            // Daten von Rect1
            Console.WriteLine("Allgemeine Daten Rectangles:");
            Console.WriteLine(new string('-', 28)); // zeichnet Linie
            Console.WriteLine("Rect1 - Length:       {0}", rect1.Length);
            Console.WriteLine("..... - Width:        {0}", rect1.Width);
            Console.WriteLine("      - XKoordinate: {0}", rect1.XCoordinate);
            Console.WriteLine("      - YKoordinate: {0}", rect1.YCoordinate);
            Console.WriteLine();

            // Test: Fläche und Umfang
            Console.WriteLine("Fläche und Umfang des Objekts 'rect1'");
            Console.WriteLine(new string('-', 40));
            Console.WriteLine("Fläche rect1: {0}", rect1.GetArea());
            Console.WriteLine("Umfang rect1: {0}", rect1.GetCircumference());
            Console.WriteLine();


            // Daten von Rect2
            Console.WriteLine("Rect2 - Length and Width:       {0} and {1}", rect2.Length, rect2.Width);
            Console.WriteLine("      - XKoordinate and YKoordinate:  {0}, {1}", rect2.XCoordinate, rect2.YCoordinate);
            Console.WriteLine();

            // Test: Fläche und Umfang
            Console.WriteLine("Fläche und Umfang des Objekts 'rect2'");
            Console.WriteLine(new string('-', 40));
            Console.WriteLine("Fläche rect2: {0}", rect2.GetArea());
            Console.WriteLine("Umfang rect2: {0}", rect2.GetCircumference());
            Console.WriteLine();

            // Test: Verschiebung Rect1
            Console.WriteLine("Verschiebung des Objekts 'Rect1' um dx=150 / dy=400");
            Console.WriteLine(new string('-', 51));
            Console.WriteLine("X (alt): {0} / Y (alt): {1}", rect1.XCoordinate, rect1.YCoordinate);
            rect1.Move(150, 400);
            Console.WriteLine("X (neu): {0} / Y (neu): {1}", rect1.XCoordinate, rect1.YCoordinate);
            Console.WriteLine();

            // Anzahl der Rectangle-Objekte ausgeben
            Console.WriteLine("Anzahl 'Rectangle-'-Objekte: {0}", Rectangle.CountRectangles);
            Console.WriteLine();


// ======== Rectangles und Kreise der Größe nach vergleichen

            Console.WriteLine("Vergleich kreis1, rect1 ergibt:  {0}", GeometricObject.Bigger2(kreis1, rect1));
            Console.WriteLine();
            Console.WriteLine("Vergleich kreis2, kreis1 ergibt: {0}", GeometricObject.Bigger2(kreis2, kreis1));

            //
            Console.ReadLine();
        }
Example #9
0
        static void Main(string[] args)
        {
            Circle kreis1 = new Circle(10);
            Circle kreis2 = new Circle(15, -140, 440);

            // Allgemeine Daten ausgeben
            Console.WriteLine("Allgemeine Daten:");
            Console.WriteLine(new string('=', 17)); // zeichnet Linie
            Console.WriteLine("kreis1 - Radius:      {0}", kreis1.Radius);
            Console.WriteLine("       - XKoordinate: {0}", kreis1.XCoordinate);
            Console.WriteLine("       - YKoordinate: {0}", kreis1.YCoordinate);
            Console.WriteLine();
            Console.WriteLine("kreis2 - Radius:      {0}", kreis2.Radius);
            Console.WriteLine("       - XKoordinate: {0}", kreis2.XCoordinate);
            Console.WriteLine("       - YKoordinate: {0}", kreis2.YCoordinate);
            Console.WriteLine();

            // Anzahl der Circle-Objekte ausgeben
            Console.WriteLine("Anzahl 'Circle'-Objekte: {0}", Circle.CountCircles);
            Console.WriteLine();

            // Test: Fläche und Umfang
            Console.WriteLine("Fläche und Umfang des Objekts 'kreis1'");
            Console.WriteLine(new string('-', 40));
            Console.WriteLine("Fläche kreis1: {0}", kreis1.GetArea());
            Console.WriteLine("Umfang kreis1: {0}", kreis1.GetCircumference());
            Console.WriteLine();

            // Test: Fläche und Umfang ==  kreis2
            Console.WriteLine("Fläche und Umfang des Objekts 'kreis2'");
            Console.WriteLine(new string('-', 40));
            Console.WriteLine("Fläche kreis2: {0}", kreis2.GetArea());
            Console.WriteLine("Umfang kreis2: {0}", kreis2.GetCircumference());
            Console.WriteLine();


            // Test: Verschiebung kreis1
            Console.WriteLine("Verschiebung des Objekts 'kreis1' um dx=150 / dy=400");
            Console.WriteLine(new string('-', 40));
            Console.WriteLine("X (alt): {0} / Y (alt): {1}", kreis1.XCoordinate, kreis1.YCoordinate);
            kreis1.Move(150, 400);
            Console.WriteLine("X (neu): {0} / Y (neu): {1}", kreis1.XCoordinate, kreis1.YCoordinate);
            Console.WriteLine();

            // Test: Verschiebung kreis1 zum 2. Mal
            Console.WriteLine("Verschiebung des Objekts 'kreis1' zzum 2. Mal um dx=350 / dy=600");
            Console.WriteLine(new string('-', 40));
            Console.WriteLine("X (alt): {0} / Y (alt): {1}", kreis1.XCoordinate, kreis1.YCoordinate);
            kreis1.Move(350, 600);
            Console.WriteLine("X (neu): {0} / Y (neu): {1}", kreis1.XCoordinate, kreis1.YCoordinate);
            Console.WriteLine();


            // Test: Größenvergleich
            if (kreis1.Bigger(kreis2) == 1)
            {
                Console.WriteLine("Objekt 'kreis1' ist größer als Objekt 'kreis2'");
            }
            else if (kreis1.Bigger(kreis2) == 0)
            {
                Console.WriteLine("Objekt 'kreis1' ist gleich Objekt 'kreis2'");
            }
            else
            {
                Console.WriteLine("Objekt 'kreis1' ist kleiner Objekt 'kreis2'");
            }

            Console.WriteLine();

            // Test Anzahl Kreisobjekte (Listung 4.3)
            GraphicCircle gc = new GraphicCircle();

            Console.WriteLine("Anzahl 'Circle'-Objekte mit zusätzlich GraphicCircle: {0}", Circle.CountCircles);
            Console.WriteLine();
            Console.WriteLine();


            Console.WriteLine("============ Rectangles ===============================");
            Console.WriteLine();

            Rectangle rect1 = new Rectangle(10, 200);
            Rectangle rect2 = new Rectangle(50, 400, 5, -100);

            // Daten von Rect1
            Console.WriteLine("Allgemeine Daten Rectangles:");
            Console.WriteLine(new string('-', 28)); // zeichnet Linie
            Console.WriteLine("Rect1 - Length:       {0}", rect1.Length);
            Console.WriteLine("..... - Width:        {0}", rect1.Width);
            Console.WriteLine("      - XKoordinate: {0}", rect1.XCoordinate);
            Console.WriteLine("      - YKoordinate: {0}", rect1.YCoordinate);
            Console.WriteLine();

            // Test: Fläche und Umfang
            Console.WriteLine("Fläche und Umfang des Objekts 'rect1'");
            Console.WriteLine(new string('-', 40));
            Console.WriteLine("Fläche rect1: {0}", rect1.GetArea());
            Console.WriteLine("Umfang rect1: {0}", rect1.GetCircumference());
            Console.WriteLine();


            // Daten von Rect2
            Console.WriteLine("Rect2 - Length and Width:       {0} and {1}", rect2.Length, rect2.Width);
            Console.WriteLine("      - XKoordinate and YKoordinate:  {0}, {1}", rect2.XCoordinate, rect2.YCoordinate);
            Console.WriteLine();

            // Test: Fläche und Umfang
            Console.WriteLine("Fläche und Umfang des Objekts 'rect2'");
            Console.WriteLine(new string('-', 40));
            Console.WriteLine("Fläche rect2: {0}", rect2.GetArea());
            Console.WriteLine("Umfang rect2: {0}", rect2.GetCircumference());
            Console.WriteLine();

            // Test: Verschiebung Rect1
            Console.WriteLine("Verschiebung des Objekts 'Rect1' um dx=150 / dy=400");
            Console.WriteLine(new string('-', 51));
            Console.WriteLine("X (alt): {0} / Y (alt): {1}", rect1.XCoordinate, rect1.YCoordinate);
            rect1.Move(150, 400);
            Console.WriteLine("X (neu): {0} / Y (neu): {1}", rect1.XCoordinate, rect1.YCoordinate);
            Console.WriteLine();

            // Anzahl der Rectangle-Objekte ausgeben
            Console.WriteLine("Anzahl 'Rectangle-'-Objekte: {0}", Rectangle.CountRectangles);
            Console.WriteLine();


// ======== Rectangles und Kreise der Größe nach vergleichen

            Console.WriteLine("Vergleich kreis1, rect1 ergibt:  {0}", GeometricObject.Bigger2(kreis1, rect1));
            Console.WriteLine();
            Console.WriteLine("Vergleich kreis2, kreis1 ergibt: {0}", GeometricObject.Bigger2(kreis2, kreis1));

            //
            Console.ReadLine();
        }