Exemple #1
0
            public void Fahren()
            {
                // Endlosschleife
                while (true)
                {
                    // Wenn Tankfüllstand größer 0
                    if (Tankfüllstand > 0)
                    {
                        // Ziehe vom Tank ab
                        Tankfüllstand--;
                        Console.WriteLine("Auto: Brumm...");
                        Thread.Sleep(500); // Warte eine halbe Sekunde

                        if (Tankfüllstand < 10)
                        {
                            Console.WriteLine("Tankleuchte blinkt rot");
                            TankfüllstandEventArgs eventArgs = new TankfüllstandEventArgs("ROT"); // Objekt von EventArgs erzeugen
                            TankfüllstandNiedrig?.Invoke(this, eventArgs);                        // Event auslösen
                        }
                        else if (Tankfüllstand < 15)
                        {
                            Console.WriteLine("Tankleuchte blinkt gelb");
                            TankfüllstandNiedrig?.Invoke(this, new TankfüllstandEventArgs("GELB"));
                        }
                    }
                    else if (Tankfüllstand <= 0)
                    {
                        break;
                    }
                }
            }
Exemple #2
0
 // Methode, mit der der Empfänger das Event abonniert hat
 public void OnTankfüllstandNiedrig(object sender, EventArgs e)
 {
     if (sender is Auto)
     {
         // Wenn die EventArgs in TankfüllstandEventArgs konvertiert werden können...
         TankfüllstandEventArgs eventArgs = e as TankfüllstandEventArgs;
         if (eventArgs != null)
         {
             if (eventArgs.Farbe == "GELB")
             {
                 Console.WriteLine("Fahrer: Ach, hat noch Zeit...");
             }
             else if (eventArgs.Farbe == "ROT")
             {
                 Console.WriteLine("Fahrer: Jetzt aber dringend Tanken...");
                 Tanken(sender as Auto);
             }
         }
     }
 }