static void ZeigeZug(Schienenfahrzeug zug)
        {
            Console.WriteLine($"{zug.Nummer} aus dem Jahr {zug.Baujahr:yyyy} " +
                              $"mit der Spurbreite {zug.Spurbreite} wir angetrieben per {(int)zug.Antriebsart} {zug.Antriebsart}");

            zug.Hupen();


            if (zug is PersonenZug)
            {
                PersonenZug pZug = (PersonenZug)zug;//casten
                Console.WriteLine($"\tIst ein PersonenZug mit {pZug.Sitzplaetze} Sitzenplätzen");
            }

            PersonenZug pZugBox = zug as PersonenZug; //boxing

            if (pZugBox != null)
            {
                Console.WriteLine($"\tIst ein PersonenZug mit {pZugBox.Sitzplaetze} Sitzenplätzen");
            }

            //ab VS2017 - pattern matchting
            if (zug is PersonenZug pZugg)
            {
                Console.WriteLine($"\tIst ein PersonenZug mit {pZugg.Sitzplaetze} Sitzenplätzen");
            }
        }
        static void Main(string[] args)
        {
            PersonenZug pz = new PersonenZug()
            {
                Nummer      = "ICE 1",
                Klimaanlage = true,
                Baujahr     = new DateTime(2012, 1, 29),
                Toiletten   = 10,
                Sitzplaetze = 657,
                Antriebsart = Antriebsart.Elektro,
            };

            ZeigeZug(pz);
            GetBaguette(pz);

            GueterZug gz = new GueterZug()
            {
                Nummer      = "54387",
                Baujahr     = new DateTime(1978, 3, 5),
                MaxZuladung = 1001,
                Antriebsart = Antriebsart.Elektro | Antriebsart.PerHand
            };

            ZeigeZug(gz);
            GetBaguette(gz);


            Console.WriteLine("Ende");
            Console.ReadLine();
        }