Exemple #1
0
        static void Main(string[] args)
        {
            Console.WriteLine("Separated by spaces, input first name, last name, age, height and weight:");
            string[] input = Console.ReadLine().Split();

            /*try { Person person = new Person(input[0], input[1]); }
             * catch (ArgumentException e)
             * {
             *  Console.WriteLine(e.Message);
             * }*/

            PersonHandler pHandler = new PersonHandler();
            Person        p;

            try {
                p = pHandler.CreatePerson(int.Parse(input[2]), input[0], input[1], double.Parse(input[3]), double.Parse(input[4]));
                pHandler.PrintPerson(p);
            }
            catch (ArgumentException e)
            {
                Console.WriteLine(e.Message);
            }
        }
Exemple #2
0
        static void Main(string[] args)
        {
            // 3.1 Inkapsling

            // var person = new Person();
            var handler = new PersonHandler();

            //Skapa personobjekt via handler
            try
            {
                var person1 = handler.CreatePerson(20, "Adam", "Bertilsson", 180.5, 78.5);
                var person2 = handler.CreatePerson(30, "Britta", "Björkblad", 168, 64);
                var person3 = handler.CreatePerson(40, "Hugo", "Boss", 176, 82);
                // Fem anrop för att visa felmeddelanden - avkommentera valfritt anrop nedan för att visa
                //var errorAge = handler.CreatePerson(0, "Cesar", "Davidsson", 176, 82);
                //var errorFnameLong = handler.CreatePerson(30, "Förnamnetärförlångt", "Eriksson", 176, 82);
                //var errorFnameShort = handler.CreatePerson(30, "X", "Eriksson", 176, 82);
                //var errorEnameLong = handler.CreatePerson(30, "Fredrik", "Efternamnetärförlångt", 176, 82);
                //var errorEnameShort = handler.CreatePerson(30, "Gustaf", "X", 176, 82);
            }
            catch (ArgumentException ex)
            {
                Console.WriteLine(ex.Message);
            }

            // 3.3 Polymorfism
            var list = new List <Animal>();

            list.Add(new Dog("Karo", 10, 5, "Mörkbrun"));
            list.Add(new Flamingo("Curt", 3, 5, 105, 65));
            list.Add(new Hedgehog("Sonic", 2, 10, false));
            list.Add(new Wolfman("Jack", 90, 35, false));
            list.Add(new Wolf("Two Socks", 45, 3, false));

            // Lista djur
            Console.WriteLine("Listar alla djur:");
            foreach (Animal animal in list)
            {
                Console.Write($"Djuret {animal.Name} finns i listan och säger ");
                if (animal is IPerson)
                {
                    ((IPerson)animal).Talk(); // Här kollar jag om animal implementerar interfacet IPerson
                }
                else
                {
                    animal.DoSound();
                }
            }

            // Skapa lista för hundar
            var dogList = new List <Dog>();

            //dogList.Add(new Horse("Polle", 400, 8, false)); // Funkar inte

            // Skriv ut Stats() för alla djur
            Console.WriteLine(newLine + "Listar Stats() för alla djur:");
            foreach (Animal animal in list)
            {
                Console.WriteLine(animal.Stats());
            }

            // Skriv ut Stats() fast endast för hundar
            Console.WriteLine(newLine + "Listar Stats() för endast hundar:");
            foreach (Animal animal in list)
            {
                if (animal is Dog)
                {
                    Console.WriteLine(animal.Stats());
                    Console.WriteLine(((Dog)animal).NewMethod()); // castar till Dog
                }
            }

            // 3.4 Polymorfism med egna felklasser

            //Skapa lista med olika fel-objekt
            var errors = new List <UserError>()
            {
                new NumericInputError(),
                new TextInputError(),
                new NumericInputError(),
                new TextInputError(),
                new NumericInputError(),
                new StringTooLongError(),
                new CoffeeBreakError(),
                new OverflowError()
            };

            //Skriv ut felen i listan
            Console.WriteLine(newLine + "Skriver ut fel-objekt (inklusive tre egna) som ärver från klassen UserError:");
            foreach (UserError error in errors)
            {
                Console.WriteLine(error.UEMessage());
            }
        }