コード例 #1
0
        static void Main(string[] args)
        {
            // In eine Datei Schreiben
            // Beschreibung Schiff
            Schiff schiff = new Schiff("Dampfer", 1000000, 86478229, 30500);

            PKW pkw = new PKW("Alfa Romeo", 200, 600000, 4);

            schiff.Belade(pkw);

            // eine Json String erstellen
            string jsonString = JsonConvert.SerializeObject(schiff);

            // in Datei schreiben
            StreamWriter streamWriter = new StreamWriter("Transportmittel.json");

            // Datei wird in Json String gewandelt
            streamWriter.Write(jsonString);

            //schliessen
            streamWriter.Close();

            // In Datei lesen
            // Wird in Jason Datei gelesen
            StreamReader streamReader = new StreamReader("Transportmittel.json");

            // Lesen aus einer Datei
            var objekt = JsonConvert.DeserializeObject <Transport>(streamReader.ReadToEnd());

            // schliessen
            streamReader.Close();

            //
            Console.WriteLine($"object is Transport: {objekt is Transport}");
            Console.WriteLine($"object: {objekt.BeschreibeMich()}");


            objekt.Beschleunige(5, Transport.GeschwEinheit.Kilometer);

            // Aufruf für static void Schreiben<T>(T o)
            Schreibe <Transport>(objekt);

            Console.ReadKey();
        }
コード例 #2
0
        static void Main(string[] args)
        {
            Fahrzeug myBMW = new Fahrzeug("BMW", 200, 500000, 100, Fahrzeug.Zustand.Stehend);

            Console.WriteLine($"{myBMW.Name}");
            int geschw = myBMW.Beschleunige(50);

            Console.WriteLine($"{geschw}");

            myBMW.Startemotor();

            Console.WriteLine($"myBMW.Beschreibemich(): {myBMW.Beschreibemich()}");

            myBMW.Stoppemotor();

            Console.WriteLine($"myBMW.Beschreibemich(): {myBMW.Beschreibemich()}");

            Flugzeug myBoeing = new Flugzeug("Boeing", 1000, 50000, 500, Fahrzeug.Zustand.Fahrend, "USA");

            Console.WriteLine($"myBoeing.Beschreibemich(): {myBoeing.Beschreibemich()}");

            Schiff Titanik = new Schiff("Titanik", 5000, 100000, 500, Fahrzeug.Zustand.Fahrend, "USA");

            Console.WriteLine($"Titanik.Beschreibemich(): {Titanik.Beschreibemich()}");


            PKW Opel = new PKW("Opel", 200, 10000, 500, Fahrzeug.Zustand.Fahrend, "Germany");

            Console.WriteLine($"Opel.Beschreibemich(): {Opel.Beschreibemich()}");

            Flugzeug flieger1 = new Flugzeug("Boeing", 800, 3000000, 500, Fahrzeug.Zustand.Stehend, "USA", 9000, 800);

            foreach (var item in flieger1)
            {
                Console.WriteLine($"item:{item}");
            }
            string testeArrayÄhnlichkeit = flieger1[2];

            Console.WriteLine($"testeArrayÄhnlichkeit:{testeArrayÄhnlichkeit}");



            Console.ReadKey();
        }
コード例 #3
0
        static void Main(string[] args)
        {
            Transportmittel transportmittel = new Transportmittel("Kutsche", 450.23, 200);

            Console.OutputEncoding = Encoding.Unicode;
            Console.WriteLine(transportmittel.BeschreibeMich());

            PKW pkw = new PKW("Audi", 45.45, 189, 3, 45);

            Console.WriteLine(pkw.BeschreibeMich());

            Schiff schiff = new Schiff("Titanic", 2000000.00, 150, Schiff.SchiffsTreibstoff.Diesel);

            Console.WriteLine(schiff.BeschreibeMich());

            Flugzeug flugzeug = new Flugzeug("Boeing", 356433222.22, 500, 7, 20000);

            Console.WriteLine(flugzeug.BeschreibeMich());

            Console.ReadKey();
        }
コード例 #4
0
        static void Main(string[] args)
        {
            MyFahrzeugClass myFahrzeug = new MyFahrzeugClass("Fahrzeug", 100, 1000, 0, "stehend");

            myFahrzeug.StarteMotor();
            myFahrzeug.Beschleunige(150);
            myFahrzeug.Beschleunige(70);

            string Satz = myFahrzeug.BeschreibeMich();

            Console.WriteLine(Satz);


            PKW pkw = new PKW("BMW", 200, 1000000, 0, "stehend", 3);

            Console.WriteLine(pkw.BeschreibeMich());

            Schiff schiff = new Schiff("Titanic", 30, 1000000000, 0, "stehend", 100);

            Console.WriteLine(schiff.BeschreibeMich());



            Flugzeug flieger1 = new Flugzeug("Boeing", 1000, 10000000, 0, "stehend", 10000);

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

            // Verwendung von IEnumerable
            foreach (var item in flieger1)
            {
                Console.WriteLine($"item: {item}");
            }

            string testeArrayÄhnlichkeit = flieger1[2];

            Console.WriteLine($"testeArrayÄhnlichkeit: {testeArrayÄhnlichkeit}");


            Console.ReadKey();
        }
コード例 #5
0
        static void Main(string[] args)
        {
            Console.OutputEncoding = Encoding.UTF8;
            //Console.Write("Bitte Fahrzeugname eingeben: ");
            //string FName = Console.ReadLine();
            //Console.Write("Bitte MaxGeschwindigkeit eingeben: ");
            //int FMaxGeschw = int.Parse(Console.ReadLine());
            //Console.Write("Bitte Preis eingeben: ");
            //int FPreis = int.Parse(Console.ReadLine());
            //Console.Write("Bitte aktuelle Geschwindigkeit eingeben: ");
            //int FAktuellV = int.Parse(Console.ReadLine());
            //Console.Write("Bitte Anfangs-Zustand eingeben (\"Stehend=0, Fahrend=1\"): ");
            //int FZustand = int.Parse(Console.ReadLine());
            //Fahrzeug fahrzeug = new Fahrzeug(FName, FMaxGeschw, FPreis, FAktuellV, FZustand);
            FahrzeugLib fahrzeug = new FahrzeugLib("BMW", 200, 20000);
            Flugzeug    flugzeug = new Flugzeug("Boeing", 900, 9500000, 3);
            PKW         pkw      = new PKW("Audi", 250, 35000, 5);
            Schiff      schiff   = new Schiff("Titanic", 60, 2500000, true);

            foreach (var item in flugzeug)
            {
                Console.WriteLine($"Eintrag: {item}");
            }
            Console.WriteLine("\n###########################");

            //Console.WriteLine($"Name: {fahrzeug.Name}");
            //Console.WriteLine($"Max Geschw: {fahrzeug.MaxGeschwindigkeit}");
            //Console.WriteLine($"Preis: {fahrzeug.Preis}");
            //Console.WriteLine($"Aktuelle Geschw: {fahrzeug.AktuelleGeschwindigkeit}");
            //Console.WriteLine($"Zustand: {fahrzeug.Zustand}");

            Console.WriteLine(fahrzeug.BeschreibeMich());
            Console.WriteLine("\n###########################");
            Console.WriteLine(flugzeug.BeschreibeMich());
            Console.WriteLine("\n###########################");
            Console.WriteLine(pkw.BeschreibeMich());
            Console.WriteLine("\n###########################");
            Console.WriteLine(schiff.BeschreibeMich());

            Console.WriteLine();
            Console.WriteLine("\n###########################");

            bool beenden = true;

            do
            {
                Console.WriteLine();
                Console.WriteLine("Was soll mit dem Fahrzeug passieren?");
                Console.WriteLine("1 = Motor stoppen");
                Console.WriteLine("2 = Motor starten");
                Console.WriteLine("3 = Beschleunigen");
                Console.WriteLine("4 = Habe fertig");
                int Antwort = int.Parse(Console.ReadLine());
                Console.Clear();
                switch (Antwort)
                {
                case 1:
                    fahrzeug.StoppeMotor();
                    Console.WriteLine($"Aktueller Zustand: {fahrzeug.Zustand}");
                    break;

                case 2:
                    fahrzeug.StarteMotor();
                    Console.WriteLine($"Aktueller Zustand: {fahrzeug.Zustand}");
                    break;

                case 3:
                    fahrzeug.Beschleunigen();
                    Console.WriteLine($"Aktuelle Geschw: {fahrzeug.AktuelleGeschwindigkeit} km/h");
                    break;

                case 4:
                    beenden = false;
                    break;
                }
            } while (beenden);
        }
コード例 #6
0
        public IActionResult SchiffeInput(Schiff schiff)
        {
            SchiffRepo.saveSchiff(schiff);

            return(RedirectToAction("Index", "Pirat"));
        }
コード例 #7
0
        static void Main(string[] args)
        {
            Fahrzeug fahrzeug = new Fahrzeug();
            //Beispiel -> Param. Konstruktor
            Fahrzeug einFahrzeug      = new Fahrzeug("BMW", 2019, 220);
            Fahrzeug weiteresFahrzeug = new Fahrzeug("Audi", 2020, 250);

            Console.WriteLine($"Marke: {einFahrzeug.Marke} \t mit Baujahr: {einFahrzeug.Baujahr} \t besitzt eine maximale Geschwindigkeit von: {einFahrzeug.MaxGeschwindigkeit}");
            Console.WriteLine($"Marke: {weiteresFahrzeug.Marke} \t mit Baujahr: {weiteresFahrzeug.Baujahr} \t besitzt eine maximale Geschwindigkeit von: {weiteresFahrzeug.MaxGeschwindigkeit}");


            einFahrzeug.Beschleunige(100);
            double mphGeschwindigkeit = Fahrzeug.KmhToMph(einFahrzeug.AktGeschwindigkeit);

            Console.WriteLine($"{einFahrzeug.Marke} fährt {einFahrzeug.AktGeschwindigkeit} kmh und umgerechnet {mphGeschwindigkeit} mph");
            weiteresFahrzeug.Beschleunige(120);

            Console.WriteLine(Fahrzeug.ZeigeAnzahlFahrzeuge());


            #region Vererbung

            PKW pkw  = new PKW("BMW", 2019, 220, 4, 4);
            PKW pkw1 = new PKW("Ford", 2018, 180, 5, 4);

            pkw.Beschleunige(50);

            Console.WriteLine($"{pkw.Marke} \t {pkw.Baujahr} \t {pkw.MaxGeschwindigkeit} / {pkw.AktGeschwindigkeit} \t - Anzahl Türen: {pkw.AnzahlTueren} \t Anzahl Räder: {pkw.AnzahlRaeder}");

            Yacht yacht = new Yacht("Kühne", 1955, 12, Schiff.Schifftreibstoff.Diesel, 2, 2000000);


            Schiff schiff = new Schiff("BlubbBlubbWerft", 1954, 13, Schiff.Schifftreibstoff.Diesel, 2);
            #endregion

            Yacht yacht1 = new Yacht(schiff, 2000000, true);

            Console.ReadKey();


            Console.WriteLine("Garagen Beispiel - Polymorphie");

            Garage garage = new Garage();
            garage.Einparken(pkw);
            garage.Einparken(pkw1);
            garage.Einparken(schiff);
            garage.Einparken(yacht);

            foreach (Fahrzeug currentFahrzeug in garage.FahrzeugListe)
            {
                if (currentFahrzeug is ITuev)
                {
                    ITuev tuev = (ITuev)currentFahrzeug;
                    if (tuev.MussFahrzeugZumTüv())
                    {
                        Console.WriteLine("Muss zum Tuev");
                    }
                }
            }


            //List<PKW> resultList = garage.ZeigeAllePKWSInGarageAn();

            //foreach (PKW currentPKW in resultList)
            //{
            //    Console.WriteLine($"{currentPKW.Marke} \t {currentPKW.Baujahr} \t {currentPKW.MaxGeschwindigkeit} / {currentPKW.AktGeschwindigkeit} \t - Anzahl Türen: {currentPKW.AnzahlTueren} \t Anzahl Räder: {currentPKW.AnzahlRaeder}");

            //    if (currentPKW is ITuev)
            //    {
            //        Console.WriteLine("Hier kann man nach dem Tuevjahr prüfen)");

            //        if (currentPKW.MussFahrzeugZumTüv())
            //            Console.WriteLine("Muss zum Tüv");
            //    }
            // }


            //Dictionaries arbeitet mit der Klasse KeyValue
            Dictionary <string, PKW> autoRegister = new Dictionary <string, PKW>();
            Dictionary <Guid, PKW>   register2    = new Dictionary <Guid, PKW>();

            register2.Add(Guid.NewGuid(), pkw);
            register2.Add(Guid.NewGuid(), pkw1);

            Guid id = Guid.NewGuid();

            autoRegister.Add(id.ToString(), pkw);
            autoRegister.Add(Guid.NewGuid().ToString(), pkw1);

            //Contain Key
            if (autoRegister.ContainsKey(id.ToString()))
            {
                PKW pkw2 = (PKW)autoRegister[id.ToString()];
            }

            if (autoRegister.ContainsValue(pkw))
            {
            }

            //KeyValuePair ist für das Lesen von Dictionaries
            foreach (KeyValuePair <string, PKW> kvp in autoRegister)
            {
                Console.WriteLine("Key = {0}, Value = {1}", kvp.Key, kvp.Value);
            }



            Console.ReadKey();
        }
コード例 #8
0
        static void Main(string[] args)
        {
            #region Klassen & static
            Console.WriteLine("\n ### Klassen & statische Methoden ###");
            Class1 class1 = new Class1();
            class1.Void();
            Class1.StaticVoid();
            #endregion

            #region Polymorphismus
            Console.WriteLine("\n ### Fahrrad & Polymorphismus ###");
            Transportmittel fahrrad1 = new Fahrrad("Nextbike", 400.00, 50, 2, 0);
            Fahrrad         fahrrad2 = new Fahrrad("Lidlbike", 300.00, 45, 2, 0);

            Console.WriteLine("\n # Overrides #");
            Console.WriteLine(fahrrad1.BeschreibeMich());
            Console.WriteLine(fahrrad2.BeschreibeMich());

            Console.WriteLine("\n # Overloads #");
            fahrrad1.Beschleunigen(5);
            fahrrad2.Beschleunigen(5);
            #endregion

            #region Interfaces
            Console.WriteLine("\n # Interfaces & Klassenverschachtelung #");
            bool kannBeladenWerden;
            kannBeladenWerden = FahrzeugBeladen(new Schiff("Marina", 200000.00, 300, Schiff.SchiffsTreibstoff.Diesel), new PKW("BMW", 20000.00, 250, 5, 4, 2000));
            Console.WriteLine($"Können Schiffe PKWs transportieren?: {kannBeladenWerden}");
            kannBeladenWerden = FahrzeugBeladen(new Fahrrad("Fordbike", 5000.00, 60, 2, 4444), new PKW("BMW", 20000.00, 250, 5, 4, 2000));
            Console.WriteLine($"Können Fahrräder PKWs transportieren?: {kannBeladenWerden}");
            #endregion

            #region Generics
            Console.WriteLine("\n ### Generische Datenstrukturen ###");
            Queue <Transportmittel> FahrzeugSchlange = new Queue <Transportmittel>();
            Stack <Transportmittel> FahrzeugStack    = new Stack <Transportmittel>();
            Dictionary <Transportmittel, Transportmittel> FahrzeugDictionary = new Dictionary <Transportmittel, Transportmittel>();

            Random random = new Random();

            //FahrzeugSchlange und Stack mit 10 zufällig erzeugten Fahrzeugtypen befüllen
            for (int i = 0; i < 10; i++)
            {
                Transportmittel neuesFahrzeug = null;

                switch ((Fahrzeugtypen)random.Next(3))
                {
                case Fahrzeugtypen.Flugzeug: neuesFahrzeug = new Flugzeug("Boing 474", 10000000, 800, 200, 6, 0); break;

                case Fahrzeugtypen.PKW: neuesFahrzeug = new PKW("Opel Astra", 20000, 190, 4, 4, 0); break;

                case Fahrzeugtypen.Schiff: neuesFahrzeug = new Schiff("Titanik", 100000000, 200, Schiff.SchiffsTreibstoff.Dampf); break;

                default: Console.WriteLine("Ungültiger Flugzeugtyp!"); break;
                }

                if (neuesFahrzeug != null)
                {
                    FahrzeugSchlange.Enqueue(neuesFahrzeug);
                    FahrzeugStack.Push(neuesFahrzeug);
                }
            }

            //Namen der FahrzeugSchlangen-Elemente ausgeben
            foreach (var item in FahrzeugSchlange)
            {
                Console.WriteLine(item);
            }
            Console.WriteLine("----------------");
            //Namen der FahrzeugStack-Elemente ausgeben
            foreach (var item in FahrzeugStack)
            {
                Console.WriteLine(item);
            }
            Console.WriteLine("----------------");

            for (int i = 0; i < 10; i++)
            {
                Transportmittel newElementFromQueue = FahrzeugSchlange.Dequeue();
                Transportmittel newElementFromStack = FahrzeugStack.Pop();
                if (FahrzeugBeladen(newElementFromQueue, newElementFromStack))
                {
                    FahrzeugDictionary.Add(newElementFromQueue, newElementFromStack);
                }
            }

            Console.WriteLine("----------------");

            foreach (var item in FahrzeugDictionary)
            {
                Console.WriteLine($"Beladbares Objekt {item.Key} hat {item.Value} beladen.");
            }

            #endregion



            Console.ReadKey();
        }
コード例 #9
0
        static void Main(string[] args)
        {
            #region Polymorphie Beispiel
            Flugzeug flugzeug  = new Flugzeug("Lufthansa", 2001, 500, "blau", 22, 11000);
            Flugzeug flugzeug1 = new Flugzeug("Fogger Doppedecker", 1912, 50, "Rot", 10, 2000);

            PKW pkw1 = new PKW("Ferrarie", 1955, 220, "Rot", 2, 4);
            PKW pkw2 = new PKW("Trappi", 1955, 80, "Mausegrau", 4, 4);
            PKW pkw3 = new PKW("Mercedez", 2020, 260, "Schwarz", 4, 4);


            Schiff schiff = new Schiff("Gorck Fork", 1867, 15, Schiff.SchiffsTreibstoff.Wind, 5);
            Yacht  yacht  = new Yacht("Jeanneau", 1999, 18, Schiff.SchiffsTreibstoff.Diesel, 2, true);
            Yacht  yacht1 = new Yacht("Black Pearl", 1788, 25, Schiff.SchiffsTreibstoff.Wind, 2, false);


            Garage dagobertsGarage = new Garage();
            dagobertsGarage.ParkeFahrzeugInGarage(flugzeug);
            dagobertsGarage.ParkeFahrzeugInGarage(flugzeug1);
            dagobertsGarage.ParkeFahrzeugInGarage(pkw1);
            dagobertsGarage.ParkeFahrzeugInGarage(pkw2);
            dagobertsGarage.ParkeFahrzeugInGarage(pkw3);
            dagobertsGarage.ParkeFahrzeugInGarage(schiff);
            dagobertsGarage.ParkeFahrzeugInGarage(yacht);
            dagobertsGarage.ParkeFahrzeugInGarage(yacht1);
            //Zeige mir mein Inventar der Garage an
            dagobertsGarage.WelcheFahrzeugeSindInDerGarage();
            dagobertsGarage.DoppeleAlleFahrzeugeDieEsKoennen();
            dagobertsGarage.WelcheFahrzeugeSindInDerGarage();

            Console.ReadKey();
            #endregion

            #region Hallo Lambda
            List <PKW> pkwListe = new List <PKW>();
            pkwListe.Add(pkw1);
            pkwListe.Add(pkw2);
            pkwListe.Add(pkw3);
            pkwListe.Add(new PKW("BMW", 2001, 180, "grau", 3, 3));
            pkwListe.Add(new PKW("BMW", 2002, 222, "rot", 4, 4));
            pkwListe.Add(new PKW("Mercedez", 2019, 300, "blau", 4, 4));


            List <PKW> filterdList = pkwListe.Where(n => n.AnzahlTueren == 4).ToList();

            //Labda benutzt das Fluent-Pattern: .LambdaMethode(n=>n.IrgendEineProperty==true).LambdaMethode(n=>n.IrgendEineProperty==true);
            List <PKW> filterdList1 = pkwListe.Where(n => n.Marke == "Mercedez" && n.MaxGeschwindigkeit > 100).OrderBy(n => n.Baujahr).ToList();

            //PKW resultPKW = pkwListe.Single(n => n.ID == "IregendeineGuid");

            //if (resultPKW != null)
            //{
            //    if (resultPKW.ID != Guid.Empty)
            //    {

            //    }
            //}


            #endregion

            #region Exception Benutzen
            //https://docs.microsoft.com/de-de/dotnet/standard/exceptions/best-practices-for-exceptions
            try
            {
                Console.Write("Eingabe>");
                string eingabe = Console.ReadLine();
                int    a       = int.Parse(eingabe);

                throw new MeineException();
            }
            catch (FormatException ex)
            {
                Console.WriteLine("Du musst eine Zahl eingeben.\n" + ex.Message);
                throw;
            }
            catch (OverflowException ex)
            {
                Console.WriteLine("Deine Zahl ist zu groß/klein.");
            }
            catch (MeineException ex)
            {
                throw;
            }
            catch (Exception ex)
            {
                Console.WriteLine("Ein unbekannter Fehler ist aufgetreten");
            }
            finally
            {
                Console.WriteLine("Wird immer ausgeführt");
            }


            StreamWriter sw = null;
            try
            {
                sw = new StreamWriter("zahlen.txt");

                for (int i = 0; i < 100; i++)
                {
                    sw.WriteLine(i);

                    if (i < 50)
                    {
                        continue;
                    }

                    Console.WriteLine(i);
                }
            }
            catch (Exception ex)
            {
                //Logdatei beschreiben
                throw;
            }
            finally
            {
                sw.Close();
            }


            #endregion
        }
コード例 #10
0
        static void Main(string[] args)
        {
            #region Modul04 - OOP
            ////vgl. Fahrzeugpark.Fahrzeug

            ////Deklaration und Initialisierung von Fahrzeugvariablen.
            ////Mittels des NEW-Stichworts wird der Konstruktor der Klasse aufgerufen und neue
            ////Fahrzeugobjekte instanziert.
            //Fahrzeug fz1 = new Fahrzeug("Audi", 200);
            //Fahrzeug fz2 = new Fahrzeug("BMW", 230);

            ////Zugriff auf den Getter der Name-Eigenschaft des Fahrzuegs in der Variable fz1
            //Console.WriteLine(fz1.Name);
            ////Zugriff auf den Setter der Name-Eigenschaft des Fahrzuegs in der Variable fz1
            //fz1.Name = "VW";
            //Console.WriteLine(fz1.Name);

            //Console.WriteLine(fz2.Name);

            ////Zugriff auf die BeschreibeMich()-Methode des Fahrzeugs in der Variable fz1
            //Console.WriteLine(fz1.BeschreibeMich());
            #endregion

            #region Lab04 - Fahrzeug-Klasse
            ////vgl. Fahrzeugpark.Fahrzeug

            ////Deklaration einer Fahrzeug-Variablen und Initialisierung über der Fahrzeug-Konstruktor
            //Fahrzeug fz1 = new Fahrzeug("BMW", 230, 26999.0);
            ////Aufruf der BeschreibeMich()-Methode des Fahrzeugs
            //Console.WriteLine(fz1.BeschreibeMich());
            ////Testen verschiedener Member-Methoden des Fahrzeugs
            //fz1.Beschleunige(15);

            //fz1.StarteMotor();

            //fz1.Beschleunige(300);

            //fz1.Beschleunige(-45);

            //Console.WriteLine(fz1.BeschreibeMich());
            #endregion

            #region Modul05 - Vererbung
            ////Erzeugung von PKW-Objekten als vom Fahrzeug erbende Objekte
            //PKW pkw1 = new PKW("BMW", 250, 24000.0, 5);
            //PKW pkw2 = new PKW("BMW", 250, 24000.0, 5);
            //PKW pkw3 = new PKW("BMW", 250, 24000.0, 5);

            ////Ausgabe der PKW-eigenen (weil mit virtual/override markierten) BeschreibeMich()-Funktion
            //Console.WriteLine(pkw1.BeschreibeMich());

            ////Ausgabe einer statischen Eigenschaft der Fahrzeug-Klasse
            //Console.WriteLine(Fahrzeug.AnzahlFahrzeuge);
            #endregion

            #region Lab05 - Vererbung(2)
            ////Erzeugung von spezifischen Fahrzeugobjekten
            //PKW pkw1 = new PKW("BMW", 250, 26999.99, 5);
            //Schiff schiff1 = new Schiff("Titanic", 40, 3500000.00, Schiff.Treibstoffart.Dampf);
            //Flugzeug flugzeug1 = new Flugzeug("Boing 747", 990, 3000000.00, 9990);

            ////Aufruf der spezifischen BeschreibeMich()-Funktionen
            //Console.WriteLine(pkw1.BeschreibeMich());
            //Console.WriteLine(schiff1.BeschreibeMich());
            //Console.WriteLine(flugzeug1.BeschreibeMich());

            ////Ausgabe der statischen Variablen der Fahrzeugklasse
            //Console.WriteLine("Es wurden " + Fahrzeug.AnzahlFahrzeuge + " Fahrzeuge erzeugt.");
            #endregion

            #region Modul06 - Polymorphismus
            ////Betrachtung eines PKW durch verschiedene Variablen

            ////In einer PKW-Variablen kann auf alle Eigenschaften/Funktionen der PKW-Klasse,
            ////darin implementierter Interfaces sowie der vererbenden Klassen zugrgriffen werden.
            //PKW pkw1 = new PKW("Audi", 250, 20000.0, 5);
            //Console.WriteLine(pkw1.AnzahlTüren);

            ////In einer Fahrzeug-Variablen kann auf alle Eigenschaften/Funktionen der Fahrzeug-Klasse
            ////zugegriffen werden, auch, wenn wir immer noch ein PKW-Objekt betrachten (da nicht zwangsläufig
            ////ein PKW-Objekt in der Variablen steckt.
            //Fahrzeug fz1 = pkw1;
            //fz1.StarteMotor();

            ////In einer IBewegbar-Variablen kann auf alle Eigenschaften/Funktionen zugegriffen werden,
            ////welche durch das Interface definiert werden
            //IBewegbar bewegbaresObjekt = pkw1;
            //bewegbaresObjekt.Bewegen();

            ////Einer Methode, welche ein Interfaceobjekt erwartet, kann ein Objekt übergeben werde, welches
            ////dieses Interface implementiert hat (gilt auch für vererbende Klassen)
            //RadAb(bewegbaresObjekt);
            #endregion

            #region Lab06 - IBeladbar
            ////Deklarierung und Initialisierung von Variablen
            //PKW pkw1 = new PKW("BMW", 230, 23000.0, 5);
            //Flugzeug flugzeug1 = new Flugzeug("Boing", 890, 3500000.0, 9980);
            //Schiff schiff1 = new Schiff("Titanic", 40, 3000000.0, Schiff.Treibstoffart.Dampf);

            ////Aufrufe der statischen Funktion zur Beladung zweier Fahrzeuge
            //BeladeFahrzeuge(pkw1, flugzeug1);
            //BeladeFahrzeuge(flugzeug1, schiff1);
            //BeladeFahrzeuge(schiff1, pkw1);

            ////Ausgabe der BeschreibeMich()-Funktion des Schiffs
            //Console.WriteLine(schiff1.BeschreibeMich());
            #endregion

            #region Modul07 - Generische Listen
            ////Die List-Klasse ist ein generischer Datentyp (ein Datentyp, welchem bei Initialisierung ein
            ////anderer Datentyp zugeordnet werden muss), mit dem gleichtypige Objekte in einer Liste dynamisch
            ////zusammengefasst werden können
            //List<Fahrzeug> fzListe = new List<Fahrzeug>();

            ////Mittels der Count-Eigenschaft der Liste kann die Anzahl der Elemente in der Liste aus
            //Console.WriteLine(fzListe.Count);

            ////Über die Add
            //fzListe.Add(new PKW("BMW", 230, 23000.0, 5));
            //fzListe.Add(new Flugzeug("Boing", 990, 3000000, 9980));

            //Console.WriteLine(fzListe.Count);

            //Console.WriteLine(fzListe[1].Name);

            //fzListe.RemoveAt(0);

            //Console.WriteLine(fzListe.Count);
            //Console.WriteLine(fzListe[0].Name);

            //PKW pkw1 = new PKW("BMW", 230, 23000.0, 5);
            //PKW pkw2 = new PKW("BMW", 230, 23000.0, 5);


            //Dictionary<Fahrzeug, string> fzDict = new Dictionary<Fahrzeug, string>();

            //fzDict.Add(pkw1, "Hallo");
            //fzDict.Add(pkw2, "Ciao");

            //if (!fzDict.ContainsKey(pkw1))
            //    fzDict.Add(pkw1, "Moin");

            //Console.WriteLine(fzDict[pkw2]);
            #endregion

            #region Lab07 - Zufällige Fahrzeuglisten
            ////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.Treibstoffart.Dampf));
            //            fzStack.Push(new Schiff($"Titanic_S{i}", 40, 3500000, Schiff.Treibstoffart.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 fz in fzDict)
            //{
            //    Console.WriteLine($"'{fz.Key.Name}' hat '{fz.Value.Name}' geladen.");
            //}
            #endregion

            #region Weitere Themen
            //Erstellung von Bsp-Objekten
            PKW pkw1 = new PKW("BMW", 230, 3000, 4);
            PKW pkw2 = new PKW("BMW", 230, 3000, 4);
            PKW pkw3 = new PKW("VW", 230, 3000, 4);

            //Benutzung der in der Fahrzeug-Klasse definierten Vergleichsoperatoren
            Console.WriteLine(pkw1 == pkw2);
            Console.WriteLine(pkw1 == pkw3);

            //Verwendung der unten stehenden Erweiterungsmethode der Random-Klasse
            Random generator = new Random();
            Console.WriteLine(generator.NextInclusive(1, 4));

            //Verwendung des in der Schiff-Klasse definierten IEnumerable
            Schiff schiff = new Schiff("ww", 2, 2, Schiff.Treibstoffart.Dampf);
            schiff.Ladungsliste.Add(new Schiff("ww", 2, 2, Schiff.Treibstoffart.Dampf));
            schiff.Ladungsliste.Add(new Schiff("ww", 2, 2, Schiff.Treibstoffart.Dampf));
            schiff.Ladungsliste.Add(new Schiff("ww", 2, 2, Schiff.Treibstoffart.Dampf));
            schiff.Ladungsliste.Add(new Schiff("ww", 2, 2, Schiff.Treibstoffart.Dampf));

            foreach (var item in schiff)
            {
                Console.WriteLine(item);
            }
            #endregion

            //Programmpause
            Console.ReadKey();
        }
コード例 #11
0
 public void saveSchiff(Schiff schiff)
 {
     context.Schiffe.Add(schiff);
     context.SaveChanges();
 }