//Konstruktor public Form1() { InitializeComponent(); //ListBox mit Werten befüllen #region Automatisiertes Hinzufügen der Enum_Werte //foreach (var item in Enum.GetValues(typeof(KaffeemaschinenArten))) //{ // listBoxKaffeemaschine.Items.Add(item); //} #endregion Automatisierte Variante listBoxKaffeemaschine.Items.Add(KaffeemaschinenArten.Filtermaschine); listBoxKaffeemaschine.Items.Add(KaffeemaschinenArten.PadMaschine); listBoxKaffeemaschine.Items.Add(KaffeemaschinenArten.Vollautomat); //Kaffeemaschinen erzeugen _filtermaschine = new FilterMaschine("Filtermaschine", 1000, 1000); _padmaschine = new PadMaschine("Padmaschine", 1000); _vollautomat = new Vollautomat("Vollautomat", 1000, 1000, 1000); //EventHandler für Bedienungsfehler-Event registrieren _filtermaschine.Bedienungsfehler += Bedienungsfehler_Handler; _padmaschine.Bedienungsfehler += Bedienungsfehler_Handler; _vollautomat.Bedienungsfehler += Bedienungsfehler_Handler; //EventHandler für FehlerFall-Event registrieren FehlerFall += Bedienungsfehler_Handler; //1. Bestellung BestelleNeuenKaffee(); }
private void buttonKaffee_Click(object sender, EventArgs e) { FülleIrgendwasEin(() => { if (!prüfeNumerischenWert(textBoxKaffee, out int kaffeemenge, "Kaffeemenge")) { return(false); } #region Umständliche und fehleranfälligere Variante die Kaffeemaschinenart zu prüfen //if(_ausgewählteMaschine.GetType() == typeof(FilterMaschine) || _ausgewählteMaschine.GetType() == typeof(Vollautomat)) #endregion if (_ausgewählteMaschine is FilterMaschine) { FilterMaschine filter = (FilterMaschine)_ausgewählteMaschine; filter.Kaffeestand += kaffeemenge; } else { FehlerFall?.Invoke(this, new FehlerEventArgs("Das ist keine Filtermaschine!")); return(false); } return(true); }); }
public void TesteWasserstand() { PadMaschine padmaschine = new PadMaschine("Pad1", 1000); padmaschine.Wasserstand += 500; Assert.AreEqual(500, padmaschine.Wasserstand); Vollautomat vollmaschine = new Vollautomat("Milch", 1000, 500, 500); vollmaschine.Milchstand += 600; Assert.AreEqual(vollmaschine.Milchkapazität, vollmaschine.Milchstand); //Polymorphie Kaffeemaschine kaffeemaschine = new FilterMaschine("Filter1", 1000, 1000); kaffeemaschine.Wasserstand += 2000; if (kaffeemaschine.Wasserstand > kaffeemaschine.Wasserkapazität) { Assert.Fail(); } //Kaffeestand testen FilterMaschine filtermaschine = (FilterMaschine)kaffeemaschine; filtermaschine.Kaffeestand += 1200; if (filtermaschine.Kaffeestand > filtermaschine.Kaffeekapazität) { Assert.Fail(); } Kaffeemaschine[] maschinen = new Kaffeemaschine[] { padmaschine, vollmaschine, filtermaschine }; foreach (Kaffeemaschine maschine in maschinen) { Console.WriteLine(maschine.Wasserstand); //prüft auf FIltermaschine oder abgeleitete Klasse davon (Vollautomat) if (maschine is FilterMaschine) { FilterMaschine fm = (FilterMaschine)maschine; Console.WriteLine(fm.Kaffeestand); } //prüft nur auf Filtermaschine if (maschine.GetType() == typeof(FilterMaschine)) { } } }