//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(); }
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)) { } } }
//Konstruktor public Form1() { InitializeComponent(); random = new Random(); listboxKaffeemaschine.Items.Add(Kaffeearten.Filterkaffee); listboxKaffeemaschine.Items.Add(Kaffeearten.Espresso); listboxKaffeemaschine.Items.Add(Kaffeearten.Cappuccino); espressoMaschine = new PadMaschine("Nespresso"); cappuccinoMaschine = new Vollautomat("Cappu-Deluxe"); cappuccinoMaschine.BaueMilchbehälterEin(3, 300); filterkaffeeMaschine = new MahlMaschine("Melitta"); //Event-Registrierung espressoMaschine.Störung += StörungsBehandlung; cappuccinoMaschine.Störung += StörungsBehandlung; filterkaffeeMaschine.Störung += StörungsBehandlung; labelCountdown.Text = COUNTDOWN_START.ToString(); //Erste Bestellung erstellen NeueBestellungErstellen(); }
private void button2_Click(object sender, EventArgs e) { if (aktuelleMaschine is PadMaschine) { //as hat den gleichen Effekt wie (PadMaschine)aktuelleMaschine //Einziger Unterschied: Wenn das Casting fehlschlägt, stürzt //das Programm nicht ab, sondern es wird null zurückgegeben PadMaschine padmaschine = aktuelleMaschine as PadMaschine; if (padmaschine.PadVorhanden) { MessageBox.Show("Da liegt schon ein Pad drin!"); } else { padmaschine.PadVorhanden = true; labelMaschinenBeschreibung.Text = aktuelleMaschine.ToString(); } } else { MessageBox.Show("Das ist keine PadMaschine!"); } }
private void buttonPad_Click(object sender, EventArgs e) { FülleIrgendwasEin(() => { #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 PadMaschine) { PadMaschine padmaschine = (PadMaschine)_ausgewählteMaschine; if (padmaschine.PadEingelegt) { return(false); } padmaschine.PadEingelegt = true; } else { FehlerFall?.Invoke(this, new FehlerEventArgs("Keine PadMaschine ausgewählt!")); return(false); } return(true); }); }