//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(); }
//Methode zum Laden einer 'Fahrzeug'-Datei (vgl. auch SpeichernUndLaden.Form1.BtnLoad_Click()) private void BtnLoad_Click(object sender, EventArgs e) { StreamReader reader = null; try { reader = new StreamReader(@"C:\Beispiel\Fahrzeuge.txt"); //Mittels der TypeNameHandling-Property des JsonSerializerSettings-Objekts kann dem Serialisierer aufgegeben werden, dass er den expliziten Objekt-Type der //zu ladenden/speichernden Objekte mit abspeichert JsonSerializerSettings settings = new JsonSerializerSettings(); settings.TypeNameHandling = TypeNameHandling.Objects; FahrzeugListe.Clear(); while (!reader.EndOfStream) { //Lesen einer Textzeile aus der Datei //und Umwandlung der Textzeile in ein Fahrzeug (Beachte die Übergabe des Settings-Objekts) //und Hinzufügen des Fahrzeugs zur Liste FahrzeugListe.Add(JsonConvert.DeserializeObject <Fahrzeug>(reader.ReadLine(), settings)); } MessageBox.Show("Speichern erfolgreich"); } catch { MessageBox.Show("Fail"); } finally { reader?.Close(); } ShowFzs(); }