예제 #1
0
        static void Main(string[] args)
        {
            Action <int> actionVar = Funktion1;

            actionVar += Funktion1;

            actionVar(45);

            actionVar -= Funktion1;

            actionVar(85);


            Func <int, int, string> funcVar = Funktion2;

            funcVar += Funktion2;


            Console.WriteLine(funcVar(12, 123));


            List <int> intList = new List <int>();

            for (int i = 0; i < 50; i++)
            {
                intList.Add(i * 3);
            }

            List <int> ergebnisse = intList.FindAll(delegate(int a)
            {
                return(a % 2 == 0);
            });

            foreach (var item in ergebnisse)
            {
                Console.WriteLine(item);
            }

            List <Fahrzeug> fzList = new List <Fahrzeug>();

            for (int i = 0; i < 10; i++)
            {
                fzList.Add(PKW.ErzeugeZufälligenPKW());
            }

            Fahrzeug ErgFz = fzList.Find(fz => fz.Name.Equals("BMW"));


            Console.WriteLine(ErgFz.BeschreibeMich());

            Console.ReadKey();
        }
예제 #2
0
        //Methode zur zufälligen Erstellung von Fahrzeugen
        public Fahrzeug ErstelleNeuesFz()
        {
            switch (Generator.Next(1, 4))
            {
            case 1:
                return(new Schiff("Titanic", 40, 3500000, Schiff.SchiffsTreibstoff.Dampf));

            case 2:
                return(new Flugzeug("Boing", 800, 3000000, 9999));

            case 3:
                return(PKW.ErzeugeZufälligenPKW(""));
            }
            return(null);
        }
예제 #3
0
        //Methode zur zufälligen Erstellung von Fahrzeugen
        private void ErstelleNeuesFZ()
        {
            switch (Generator.Next(1, 4))
            {
            case 1:
                FzListe.Add(new Flugzeug($"Boing", 800, 3600000, 9999));
                break;

            case 2:
                FzListe.Add(new Schiff($"Titanic", 40, 3500000, Schiff.Schiffstreibstoff.Dampf));
                break;

            case 3:
                FzListe.Add(PKW.ErzeugeZufälligenPKW());
                break;
            }
        }
예제 #4
0
        //Methode zur zufälligen Fahrzeug-Erzeugung
        private void ErzeugeNeuesFz()
        {
            switch (generator.Next(1, 4))
            {
            case 1:
                FahrzeugListe.Add(new Schiff("Titanic", 40, 3000000.0, Schiff.Treibstoffart.Dampf));
                break;

            case 2:
                FahrzeugListe.Add(new Flugzeug("Boing", 980, 3500000.0, 9999));
                break;

            case 3:
                FahrzeugListe.Add(PKW.ErzeugeZufälligenPKW());
                break;

            default:
                break;
            }
        }
예제 #5
0
        //Click-Methoden der Buttons

        //Methode zur zufälligen Erstellung von Fahrzeugen
        private void BtnNew_Click(object sender, EventArgs e)
        {
            switch (generator.Next(1, 4))
            {
            //Erzeugung von Objekten je nach zufälliger Zahl
            case 1:
                FahrzeugListe.Add(new Flugzeug($"Boing", 800, 3600000, 9999));
                break;

            case 2:
                FahrzeugListe.Add(new Schiff($"Titanic", 40, 3500000, Schiff.SchiffsTreibstoff.Dampf));
                break;

            case 3:
                FahrzeugListe.Add(PKW.ErzeugeZufälligenPKW($""));
                break;
            }

            ShowFzs();
        }
예제 #6
0
        static void Main(string[] args)
        {
            //Ändern des durch Console verwendeten Zeichensatzes auf Unicode (damit das €-Zeichen angezeigt werden kann)
            Console.OutputEncoding = Encoding.UTF8;

            #region Modul04: OOP
            ////Instanzierung der Fahrzeuge
            //Fahrzeug fz1 = new Fahrzeug("BMW", 200);
            //Fahrzeug fz2 = new Fahrzeug("Audi", 180);

            ////Ausgabe von fz1
            //Console.WriteLine(fz1.Name + ": " + fz1.MaxGeschwindigkeit + "km/h");

            ////Veränderung des Namens von fz1
            //fz1.Name = "Opel";
            ////Ausgabe der Fahrzeugeigenschaften (fz1 wurde verändert, fz2 nicht)
            //Console.WriteLine(fz1.Name + ": " + fz1.MaxGeschwindigkeit + "km/h");
            //Console.WriteLine(fz2.Name + ": " + fz2.MaxGeschwindigkeit + "km/h");

            ////Ausgabe der BeschreibeMich-Methode von fz1
            //Console.WriteLine(fz1.BeschreibeMich());

            #endregion

            #region Lab04: Fahrzeug_Klasse

            ////Deklaration einer Fahrzeug-Variablen und Initialisierung mittels einer Fahrzeug-Instanz
            //Fahrzeug fz1 = new Fahrzeug("Mercedes", 190, 23000);
            ////Ausführen der BeschreibeMich()-Methode des Fahrzeugs und Ausgabe in der Konsole
            //Console.WriteLine(fz1.BeschreibeMich() + "\n");

            ////Diverse Methodenausführungen
            //fz1.StarteMotor();
            //fz1.Beschleunige(120);
            //Console.WriteLine(fz1.BeschreibeMich() + "\n");

            //fz1.Beschleunige(300);
            //Console.WriteLine(fz1.BeschreibeMich() + "\n");

            //fz1.StoppeMotor();
            //Console.WriteLine(fz1.BeschreibeMich() + "\n");

            #endregion

            #region Modul05: Vererbung

            //PKW pkw1 = new PKW("BMW", 210, 26000, 5);

            //Console.WriteLine(pkw1.BeschreibeMich());

            //Console.WriteLine(pkw1);

            //pkw1 = new PKW("BMW", 210, 26000, 5);
            //pkw1 = new PKW("BMW", 210, 26000, 5);
            //pkw1 = new PKW("BMW", 210, 26000, 5);
            //pkw1 = new PKW("BMW", 210, 26000, 5);
            //pkw1 = new PKW("BMW", 210, 26000, 5);
            //pkw1 = new PKW("BMW", 210, 26000, 5);
            //pkw1 = new PKW("BMW", 210, 26000, 5);

            //Console.WriteLine(Fahrzeug.ZeigeAnzahlFahrzeuge());

            #endregion

            #region Lab05: PKW-, Schiff- und Flugzeug-Klasse

            //PKW pkw1 = new PKW("BMW", 250, 23000, 5);
            //Console.WriteLine(pkw1.BeschreibeMich());
            //pkw1.Hupe();

            //Schiff schiff1 = new Schiff("Titanic", 40, 3500000, Schiff.SchiffsTreibstoff.Dampf);
            //Console.WriteLine(schiff1.BeschreibeMich());
            //schiff1.Hupe();

            //Flugzeug flugzeug1 = new Flugzeug("Boing", 750, 3000000, 9990);
            //Console.WriteLine(flugzeug1.BeschreibeMich());
            //flugzeug1.Hupe();

            //Console.WriteLine(Fahrzeug.ZeigeAnzahlFahrzeuge());

            #endregion

            #region Modul06: Interfaces und Polymorphismus

            //PKW pkw1 = new PKW("BMW", 250, 23000, 5);

            //Fahrzeug fz1 = pkw1;

            //IBewegbar bewegbaresObjekt = pkw1;

            //bewegbaresObjekt.Crash();

            //MontiereNeuesRad(pkw1);

            //BenenneFahrzeugUm("Opel", pkw1);

            #endregion

            #region Lab06: IBeladbar

            //PKW pkw1 = new PKW("BMW", 250, 23000, 5);
            //Flugzeug flugzeug1 = new Flugzeug("Boing", 750, 3000000, 9990);
            //Schiff schiff1 = new Schiff("Titanic", 40, 3500000, Schiff.SchiffsTreibstoff.Dampf);

            //BeladeFahrzeuge(pkw1, flugzeug1);
            //BeladeFahrzeuge(flugzeug1, schiff1);
            //BeladeFahrzeuge(schiff1, pkw1);

            //Console.WriteLine("\n" + schiff1.BeschreibeMich());

            //schiff1.Entlade();

            #endregion

            #region Modul07: Generische Listen
            ////Deklaration und Initialisierung einer Liste von Strings
            //System.Collections.Generic.List<string> Städteliste = new List<string>();

            ////Hinzufügen von Listeneinträgen
            //Städteliste.Add("Berlin");
            //Städteliste.Add("Hamburg");
            //Städteliste.Add("München");
            //Städteliste.Add("Köln");
            //Städteliste.Add("Düsseldorf");

            ////Ausgabe der Länge der Liste
            //Console.WriteLine(Städteliste.Count);

            ////Ausgabe der 4. Listenposition
            //Console.WriteLine(Städteliste[3]);

            ////Manipulation der 5. Listenposition
            //Städteliste[4] = "Dresden";
            //Console.WriteLine(Städteliste[4]);

            ////Schleife über die Liste
            //foreach (var stadt in Städteliste)
            //{
            //    Console.WriteLine(stadt);
            //}

            ////Löschen des Eintrags 'München' (Nachfolgende Einträge rücken nach oben)
            //Städteliste.Remove("München");

            //List<Fahrzeug> Fahrzeugliste = new List<Fahrzeug>();

            //Fahrzeugliste.Add(new PKW("BMW", 250, 23000, 5));
            //Fahrzeugliste.Add(new Flugzeug("Boing", 750, 3000000, 9990));
            //Fahrzeugliste.Add(new Schiff("Titanic", 40, 3500000, Schiff.SchiffsTreibstoff.Dampf));

            //foreach (var fz in Fahrzeugliste)
            //{
            //    Console.WriteLine(fz.BeschreibeMich());
            //}

            ////Deklaration und Initialisierung eines Dictionarys (Key: String, Value: Int)
            //Dictionary<string, int> Einwohnerzahlen = new Dictionary<string, int>();

            ////Hinzufügen von Dictionary-Einträgen
            //Einwohnerzahlen.Add("Berlin", 3500000);
            //Einwohnerzahlen.Add("Hamburg", 2500000);
            //Einwohnerzahlen.Add("Leipzig", 60000);

            ////Ausgabe des Eintrags mit Key 'Leipzig'
            //Console.WriteLine(Einwohnerzahlen["Leipzig"]);
            ////Ändern des Eintrags mit dem Key 'Leipzig'
            //Einwohnerzahlen["Leipzig"] = 70000;

            ////Schleife über Dictionary
            //foreach (var item in Einwohnerzahlen)
            //{
            //    Console.WriteLine(item.Key + ": " +item.Value);
            //}

            //Dictionary<string, Fahrzeug> Dict2 = new Dictionary<string, Fahrzeug>();
            //Dict2.Add("Hugo", new PKW("BMW", 250, 23000, 5));
            //Dict2.Add("Anna", new Schiff("Titanic", 40, 3500000, Schiff.SchiffsTreibstoff.Dampf));

            //Console.WriteLine(Dict2["Anna"].BeschreibeMich());

            //Dictionary<Fahrzeug, List<string>> Passagiere = new Dictionary<Fahrzeug, List<string>>();
            //Passagiere.Add(new PKW("BMW", 250, 23000, 5), Städteliste);

            ////Deklaration und Initialisierung eines Hastables + Erstellung und Abruf von Einträgen (nicht-genereisches Dictionary nach dem Hash-Speicherprinzip)
            //Hashtable ht = new Hashtable();
            //ht.Add("Hallo", 450);
            //ht.Add(78.5, new PKW("VW", 260, 250020, 4));
            //Console.WriteLine(ht["Hallo"]);

            ////Deklaration und Initialisierung eines HashSets (generische Liste nach dem Hash-Speicherprinzip)
            //HashSet<int> hs = new HashSet<int>();
            //hs.Add(23);
            #endregion

            #region Lab07 ZufälligeFahrzeuglisten

            ////Deklaration der benötigten Variablen und und Initialisierung mit Instanzen der benötigten Objekte
            //Random generator = new Random();
            //Queue<Fahrzeug> fzQueue = new Queue<Fahrzeug>();
            //Stack<Fahrzeug> fzStack = new Stack<Fahrzeug>();
            //Dictionary<Fahrzeug, Fahrzeug> fzDict = new Dictionary<Fahrzeug, Fahrzeug>();
            ////Deklaration und Initialisierung einer Variablen zur Bestimmung der Anzahl der Durchläufe
            //int AnzahlFZs = 1000;

            ////Schleife zur zufälligen Befüllung von Queue und Stack
            //for (int i = 0; i < AnzahlFZs; i++)
            //{
            //    //Würfeln einer zufälligen Zahl im Switch
            //    switch (generator.Next(1, 4))
            //    {
            //        //Erzeugung von Objekten je nach zufälliger Zahl
            //        case 1:
            //            fzQueue.Enqueue(new Flugzeug($"Boing_Q{i}", 800, 3600000, 9999));
            //            fzStack.Push(new Flugzeug($"Boing_S{i}", 800, 3600000, 9999));
            //            break;
            //        case 2:
            //            fzQueue.Enqueue(new Schiff($"Titanic_Q{i}", 40, 3500000, Schiff.SchiffsTreibstoff.Dampf));
            //            fzStack.Push(new Schiff($"Titanic_S{i}", 40, 3500000, Schiff.SchiffsTreibstoff.Dampf));
            //            break;
            //        case 3:
            //            fzQueue.Enqueue(PKW.ErzeugeZufälligenPKW($"_Q{i}"));
            //            fzStack.Push(PKW.ErzeugeZufälligenPKW($"_S{i}"));
            //            break;
            //    }
            //}

            ////Schleife zur Prüfung auf das Interface und Befüllung des Dictionaries
            //for (int i = 0; i < AnzahlFZs; i++)
            //{
            //    //Prüfung, ob das Interface vorhanden ist (mittels Peek(), da die Objekte noch benötigt werden)...
            //    if (fzQueue.Peek() is IBeladbar)
            //    {
            //        //...wenn ja, dann Cast in das Interface und Ausführung der Belade()-Methode (mittels Peek())...
            //        ((IBeladbar)fzQueue.Peek()).Belade(fzStack.Peek());
            //        //...sowie Hinzufügen zum Dictionary (mittels Pop()/Dequeue(), um beim nächsten Durchlauf andere Objekte an den Spitzen zu haben)
            //        fzDict.Add(fzQueue.Dequeue(), fzStack.Pop());
            //    }
            //    else
            //    {
            //        //... wenn nein, dann Löschung der obersten Objekte (mittels Pop()/Dequeue())
            //        fzQueue.Dequeue();
            //        fzStack.Pop();
            //    }
            //}

            ////Erzwingen eines Durchlaufs der GarbageCollcetion (Löscht alle nicht-referenzierten Objekte aus dem RAM)
            //GC.Collect();

            ////Programmpause
            //Console.ReadKey();
            //Console.WriteLine("\n----------LADELISTE----------");

            ////Schleife zur Ausgabe des Dictionaries
            //foreach (var item in fzDict)
            //{
            //    Console.WriteLine($"'{item.Key.Name}' hat '{item.Value.Name}' geladen.");
            //}

            #endregion

            //Erstellung von Bsp-Objekten
            PKW pkw1 = PKW.ErzeugeZufälligenPKW("");
            PKW pkw2 = PKW.ErzeugeZufälligenPKW("");

            //Ausgabe der ToString-Funktion des PKWs (wird in Fahrzeugklasse überschrieben)
            Console.WriteLine(pkw1);

            //Bsp für die Verwendung der in der Fahrzeug-Klasse definierten Operatoren (vgl. Fahrzeugpark.Fahrzeug)
            Console.WriteLine(pkw1 == pkw2);
            Console.WriteLine(pkw1 == pkw1);

            Flugzeug flug1 = new Flugzeug($"Boing", 800, 3600000, 9999);

            //Bsp für die Verwendung von IEnumerable (vgl. Fahrzeugpark.Flugzeug)
            foreach (var item in flug1)
            {
                Console.WriteLine(item);
            }

            //Bsp für die Verwendung der Indexer-Property (vgl. Fahrzeugpark.Flugzeug)
            Console.WriteLine(flug1[2]);

            Random gene = new Random();
            //Bsp für die Verwendung einer Erweiterungsmethode (s.u.)
            gene.NextInclusive(1, 10);
        }
예제 #7
0
        static void Main(string[] args)
        {
            //Ändern des durch Console verwendeten Zeichensatzes auf Unicode (damit das €-Zeichen angezeigt werden kann)
            Console.OutputEncoding = Encoding.UTF8;

            #region Modul04: OOP
            ////Instanzierung der Fahrzeuge

            ////volle Pfadangabe bei Objekt/Variablenaufruf
            //Fahrzeugpark.Fahrzeug fz1 = new Fahrzeugpark.Fahrzeug("BMW", 250);

            ////Benutzung der using-Anweisung
            //Fahrzeug fz2 = new Fahrzeug("VW", 190);

            //Aufruf des paraeterlosen Konstruktors
            //Fahrzeug fz3 = new Fahrzeug();

            ////Ausgabe von fz1
            //Console.WriteLine(fz1.Name + ": " + fz1.MaxGeschwindigkeit + "km/h");

            ////Veränderung des Namens von fz1
            //fz1.Name = "Opel";
            ////Ausgabe der Fahrzeugeigenschaften (fz1 wurde verändert, fz2 nicht)
            //Console.WriteLine(fz1.Name + ": " + fz1.MaxGeschwindigkeit + "km/h");
            //Console.WriteLine(fz2.Name + ": " + fz2.MaxGeschwindigkeit + "km/h");

            ////Ausgabe der BeschreibeMich-Methode von fz1
            //Console.WriteLine(fz1.BeschreibeMich());

            ////Neuzuweisung der fz2-Variable auf Objekt in fz1 (beide Variablen zeigen auf dasselbe Objekt)
            //fz2 = fz1;

            ////manueller Aufruf der GarbageCollection
            //GC.Collect();
            #endregion

            #region Lab04: Fahrzeug_Klasse

            ////Deklaration einer Fahrzeug-Variablen und Initialisierung mittels einer Fahrzeug-Instanz
            //Fahrzeug fz1 = new Fahrzeug("Mercedes", 190, 23000);
            ////Ausführen der BeschreibeMich()-Methode des Fahrzeugs und Ausgabe in der Konsole
            //Console.WriteLine(fz1.BeschreibeMich());

            ////Diverse Methodenausführungen
            //fz1.StarteMotor();
            //fz1.Beschleunige(120);
            //Console.WriteLine(fz1.BeschreibeMich());

            //fz1.Beschleunige(300);
            //Console.WriteLine(fz1.BeschreibeMich());

            //fz1.StoppeMotor();
            //Console.WriteLine(fz1.BeschreibeMich());

            #endregion

            #region Modul05: Vererbung

            ////Bsp-Objekt-Instanzierung
            //PKW pkw1 = new PKW("BMW", 190, 23000, 4);
            //pkw1 = new PKW("BMW", 190, 23000, 4);
            //pkw1 = new PKW("BMW", 190, 23000, 4);
            //pkw1 = new PKW("BMW", 190, 23000, 4);
            //pkw1 = new PKW("BMW", 190, 23000, 4);
            //pkw1 = new PKW("BMW", 190, 23000, 4);
            //pkw1 = new PKW("BMW", 190, 23000, 4);

            ////Aufruf der ToString()-Methode
            //Console.WriteLine(pkw1);
            ////Aufruf der Hupe()-Methode
            //pkw1.Hupe();

            ////Ausgabe von statischer Eingenschaft/Methode
            //Console.WriteLine(Fahrzeug.AnzahlErstellterFahrzeuge);
            //Console.WriteLine(Fahrzeug.ZeigeAnzahlFahrzeuge());

            #endregion

            #region Lab05: PKW-, Schiff- und Flugzeug-Klasse

            ////Instanzierung eines Bsp-PKWs
            //PKW pkw1 = new PKW("BMW", 250, 23000, 5);
            //Console.WriteLine(pkw1.BeschreibeMich());
            //pkw1.Hupe();

            ////Instanzierung eines Bsp-Schiffs
            //Schiff schiff1 = new Schiff("Titanic", 40, 3500000, Schiff.SchiffsTreibstoff.Dampf);
            //Console.WriteLine(schiff1.BeschreibeMich());
            //schiff1.Hupe();

            ////Instanzierung eines Bsp-Flugzeugs
            //Flugzeug flugzeug1 = new Flugzeug("Boing", 750, 3000000, 9990);
            //Console.WriteLine(flugzeug1.BeschreibeMich());
            //flugzeug1.Hupe();

            ////Ausgabe der statischen Methode der Fahrzeugklasse
            //Console.WriteLine(Fahrzeug.ZeigeAnzahlFahrzeuge());

            #endregion

            #region Modul06: Interfaces und Polymorphismus
            ////Instanzierung von Bsp-Objekt
            //PKW pkw1 = new PKW("BMW", 190, 23000, 4);
            ////Aufruf der Interface-Methode
            //pkw1.Crash();

            ////Zuweisung neuer Variablen (anderer Variablentyp) mit dem PKW-Objekt
            ////-> Variablentyp definiert 'Sichtbarkeit' der Eigenschaften
            //Fahrzeug fz1 = pkw1;
            //IBewegbar bewegbaresObjekt = pkw1;

            ////BSP: Variablentyp = Fahrzeug | Laufzeittyp (= Typ des Objekts) = PKW
            //Fahrzeug fz2 = new PKW("VW", 190, 25000, 3);

            ////Prüdung, ob in Fahrzeug-Variable ein PKW-Objekt liegt...
            //if (fz2 is PKW)
            //{
            //    //... wenn ja, dann Cast in PKW und Zuweisung zu PKW-Variable
            //    PKW pkw2 = (PKW)fz2;
            //}

            ////Aufruf der BSP-Funktion (s.u.)
            //MontiereNeuesRad(pkw1);
            #endregion

            #region Lab06: IBeladbar

            //PKW pkw1 = new PKW("BMW", 250, 23000, 5);
            //Flugzeug flugzeug1 = new Flugzeug("Boing", 750, 3000000, 9990);
            //Schiff schiff1 = new Schiff("Titanic", 40, 3500000, Schiff.SchiffsTreibstoff.Dampf);

            //BeladeFahrzeuge(pkw1, flugzeug1);
            //BeladeFahrzeuge(flugzeug1, schiff1);
            //BeladeFahrzeuge(schiff1, pkw1);

            //Console.WriteLine("\n" + schiff1.BeschreibeMich());

            #endregion

            #region Modul07: Generische Listen
            ////Deklaration und Initialisierung einer Liste von Strings
            //List<string> Städteliste = new List<string>();

            ////Hinzufügen von Listeneinträgen
            //Städteliste.Add("Berlin");
            //Städteliste.Add("Köln");
            //Städteliste.Add("Hamburg");
            //Städteliste.Add("Nürnberg");
            //Städteliste.Add("München");

            ////Ausgabe der Länge der Liste
            //Console.WriteLine(Städteliste.Count);

            ////Ausgabe der 3. Listenposition
            //Console.WriteLine(Städteliste[2]);

            ////Manipulation der 3. Listenposition
            //Staedteliste[2] = "Dresden";
            //Console.WriteLine(Staedteliste[2]);

            ////Schleife über die Liste
            //foreach (var item in Städteliste)
            //{
            //    Console.WriteLine(item);
            //}

            ////Löschen des Eintrags 'Köln' (Nachfolgende Einträge rücken nach oben)
            //Staedteliste.Remove("Köln");

            ////Bsp für Fahrzeug-Liste
            //List<Fahrzeug> Fahrzeugliste = new List<Fahrzeug>();

            //Fahrzeugliste.Add(new PKW("BMW", 190, 23000, 4));
            //Fahrzeugliste.Add(new PKW("BMW", 190, 23000, 4));
            //Fahrzeugliste.Add(new PKW("BMW", 190, 23000, 4));
            //Fahrzeugliste.Add(new PKW("BMW", 190, 23000, 4));
            //Fahrzeugliste.Add(new PKW("BMW", 190, 23000, 4));

            //foreach (var item in Fahrzeugliste)
            //{
            //    Console.WriteLine(item);
            //}

            //Fahrzeugliste.RemoveAt(3);


            ////Deklaration und Initialisierung eines Dictionarys (Key: Int, Value: String)
            //Dictionary<int, string> Dict = new Dictionary<int, string>();

            ////Hinzufügen von Dictionary-Einträgen
            //Dict.Add(1, "Hallo");
            //Dict.Add(202, "Ciao");
            //Dict.Add(3185, "Hi");

            ////Ausgabe des Eintrags mit Key '202'
            //Console.WriteLine(Dict[202]);

            ////Deklaration und Initialisierung eines Hastables + Erstellung und Abruf von Einträgen (nicht-genereisches Dictionary nach dem Hash-Speicherprinzip)
            //Hashtable ht = new Hashtable();
            //ht.Add("Hallo", 450);
            //ht.Add(78.5, new PKW("VW", 260, 250020, 4));
            //Console.WriteLine(ht["Hallo"]);

            ////Schleife über Dictionary
            //foreach (var item in Dictionary1)
            //{
            //    Console.WriteLine(item.Key + ": " + item.Value);
            //}

            ////Deklaration und Initialisierung eines Hastables + Erstellung und Abruf von Einträgen (nicht-genereisches Dictionary nach dem Hash-Speicherprinzip)
            //Hashtable ht = new Hashtable();
            //ht.Add("Hallo", 450);
            //ht.Add(78.5, new PKW("VW", 260, 250020, 4));
            //Console.WriteLine(ht["Hallo"]);

            ////Deklaration und Initialisierung eines HashSets (generische Liste nach dem Hash-Speicherprinzip)
            //HashSet<int> hs = new HashSet<int>();
            //hs.Add(23);
            #endregion

            #region Lab07 ZufälligeFahrzeuglisten

            ////Deklaration der benötigten Variablen und und Initialisierung mit Instanzen der benötigten Objekte
            //Random generator = new Random();
            //Queue<Fahrzeug> fzQueue = new Queue<Fahrzeug>();
            //Stack<Fahrzeug> fzStack = new Stack<Fahrzeug>();
            //Dictionary<Fahrzeug, Fahrzeug> fzDict = new Dictionary<Fahrzeug, Fahrzeug>();
            ////Deklaration und Initialisierung einer Variablen zur Bestimmung der Anzahl der Durchläufe
            //int AnzahlFZs = 10000;

            ////Schleife zur zufälligen Befüllung von Queue und Stack
            //for (int i = 0; i < AnzahlFZs; i++)
            //{
            //    //Würfeln einer zufälligen Zahl im Switch
            //    switch (generator.Next(1, 4))
            //    {
            //        //Erzeugung von Objekten je nach zufälliger Zahl
            //        case 1:
            //            fzQueue.Enqueue(new Flugzeug($"Boing_Q{i}", 800, 3600000, 9999));
            //            fzStack.Push(new Flugzeug($"Boing_S{i}", 800, 3600000, 9999));
            //            break;
            //        case 2:
            //            fzQueue.Enqueue(new Schiff($"Titanic_Q{i}", 40, 3500000, Schiff.SchiffsTreibstoff.Dampf));
            //            fzStack.Push(new Schiff($"Titanic_S{i}", 40, 3500000, Schiff.SchiffsTreibstoff.Dampf));
            //            break;
            //        case 3:
            //            fzQueue.Enqueue(PKW.ErzeugeZufälligenPKW($"_Q{i}"));
            //            fzStack.Push(PKW.ErzeugeZufälligenPKW($"_S{i}"));
            //            break;
            //    }
            //}

            ////Schleife zur Prüfung auf das Interface und Befüllung des Dictionaries
            //for (int i = 0; i < AnzahlFZs; i++)
            //{
            //    //Prüfung, ob das Interface vorhanden ist (mittels Peek(), da die Objekte noch benötigt werden)...
            //    if (fzQueue.Peek() is IBeladbar)
            //    {
            //        //...wenn ja, dann Cast in das Interface und Ausführung der Belade()-Methode (mittels Peek())...
            //        ((IBeladbar)fzQueue.Peek()).Belade(fzStack.Peek());
            //        //...sowie Hinzufügen zum Dictionary (mittels Pop()/Dequeue(), um beim nächsten Durchlauf andere Objekte an den Spitzen zu haben)
            //        fzDict.Add(fzQueue.Dequeue(), fzStack.Pop());
            //    }
            //    else
            //    {
            //        //... wenn nein, dann Löschung der obersten Objekte (mittels Pop()/Dequeue())
            //        fzQueue.Dequeue();
            //        fzStack.Pop();
            //    }
            //}

            ////Programmpause
            //Console.ReadKey();
            //Console.WriteLine("\n----------LADELISTE----------");

            ////Schleife zur Ausgabe des Dictionaries
            //foreach (var item in fzDict)
            //{
            //    Console.WriteLine($"'{item.Key.Name}' hat '{item.Value.Name}' geladen.");
            //}

            #endregion

            //Erstellung von Bsp-Objekten
            PKW pkw1 = PKW.ErzeugeZufälligenPKW("");
            PKW pkw2 = PKW.ErzeugeZufälligenPKW("");

            pkw2.Name = pkw1.Name;

            Console.WriteLine(pkw1.Name);
            Console.WriteLine(pkw2.Name);

            //Bsp für die Verwendung der in der Fahrzeug-Klasse definierten Operatoren
            Console.WriteLine(pkw1 == pkw2);
            Console.WriteLine(pkw1 != pkw2);

            Flugzeug flug1 = new Flugzeug("Boing", 800, 30000000, 9999);

            //Bsp für die Verwendung von IEnumerable
            foreach (var item in flug1)
            {
                Console.WriteLine(item);
            }

            //Bsp für die Verwendung der Indexer-Property
            Console.WriteLine(flug1[2]);

            Random gene = new Random();

            //Bsp für die Verwendung einer Erweiterungsmethode (s.u.)
            Console.WriteLine(gene.NextInclusive(1, 5));

            Console.ReadKey();
        }