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); } }
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()); } }