/// <summary> /// /// Mina frågor till dig har jag markerat med ???: /// Mina svar på dina frågor har jag markerat med SVAR: /// /// </summary> static void Main(string[] args) { //Person person = new Person(43, "Synnöve", "Settman", 173, 76); //Console.WriteLine(person); //return person; //int personAge = PersonHandler.SetAge(person, person.age); PersonHandler person2 = new PersonHandler(); person2.CreatePerson(42, "Pia", "Eriksson", 155, 60); Console.WriteLine(person2); return(person); List <PersonHandler> people = new List <PersonHandler>(); people.Add(new PersonHandler(people.CreatePerson { 42, "Pia", "Eriksson", 155, 60 }));
static void Main(string[] args) { //Person person = new Person(); //person.Age = 30; //person.FName = "hej"; //person.LName = "svejs"; //person.Height = 180; //person.Weight = 50; //Console.WriteLine("Person properties: " + person + "\n\n"); Console.WriteLine("\n\n\n\nPERSON-exercise"); PersonHandler personHandler = new PersonHandler(); var person1 = personHandler.CreatePerson(0, "person1", string.Empty, 0, 0); var person2 = personHandler.CreatePerson(0, "person2", string.Empty, 0, 0); var person3 = personHandler.CreatePerson(0, "person3", string.Empty, 0, 0); Console.WriteLine("personHandler.CreatePerson(): " + person1); Console.WriteLine("personHandler.CreatePerson(): " + person2); Console.WriteLine("personHandler.CreatePerson(): " + person3); Console.WriteLine(); personHandler.SetAge(person1, 20); Console.WriteLine("PersonHandler.SetAge(20) person1: " + person1 + "\n"); personHandler.SetFName(person2, "p2!!"); Console.WriteLine("PersonHandler.SetFName(\"p2!!\") person2: " + person2 + "\n"); personHandler.SetLName(person3, "bar"); Console.WriteLine("PersonHandler.SetLName(\"bar\") person3:" + person3 + "\n"); personHandler.SetHeight(person1, 180); Console.WriteLine("PersonHandler.Setheight(180) person1:" + person1 + "\n"); personHandler.SetWeight(person2, 90); Console.WriteLine("PersonHandler.Setweight(90) person2:" + person2 + "\n"); Console.WriteLine("person1: " + person1); Console.WriteLine("person2: " + person2); Console.WriteLine("person3: " + person3); Console.WriteLine("Hit any key to continue"); Console.ReadKey(); var animals = new List <Animal>() /*new Bird("birdy", 1, 8),*/ new { Dog("doggy", 2, 7), new Flamingo("flamingy", 3, 6), new Hedgehog("hedgy", 4, 5), new Horse("horsy", 5, 4), new Pelican("pelicany", 6, 3), new Swan("swany", 7, 2), new Worm("wormy", 8, 1) }; Console.WriteLine("\n\n\n\nANIMALS-exercise"); foreach (var animal in animals) { //11.F: Förklara vad det är som händer. //Svar: genom att Stats metoden har överridits så körs subklassens metod. Console.WriteLine(animal.Stats()); } Console.WriteLine("Hit any key to continue"); Console.ReadKey(); var dogs = new List <Dog>() { new Dog("doggy1", 1, 3) /*, new Horse("horsy", 5, 4)*/, new Dog("doggy2", 2, 2), new Dog("doggy3", 3, 1) }; //8. F: Vilken typ måste listan vara för att alla klasser skall kunna lagras tillsammans? //Svar: Animal animals.AddRange(dogs); Console.WriteLine("\n\n\n\nANIMALS filtered on DOGS only"); foreach (var animal in animals) { if (animal is Dog) { var dog = animal as Dog; Console.WriteLine(animal.Stats() + " what the dog says?:" + dog.UniqMethodForDog()); //14. Kommer du åt den metoden från Animals listan? //15. F: Varför inte? //Svar: Nej animal har inte metoden UniqMethodForDog(), den är endast definierad i subklass Dog. } } Console.WriteLine("Hit any key to continue"); Console.ReadKey(); /* * 11. F: Varför är polymorfism viktigt att behärska? * Svar: Vanligt förekommande i .Net framework. * 12. F: Hur kan polymorfism förändra och förbättra kod via en bra struktur? * Svar: Gör det lättare att utöka funktionalitet med tex. en ny typ av klass i en polymorfisk arkitektur * och där klasserna själva ansvarar för implementationen. * -mindre risk att introducera buggar i redan befintlig funktionalitet. * 13. F: Vad är det för en skillnad på en Abstrakt klass och ett Interface? * Svar: Ett Interface har ingen implementation men abstract class kan ha metoder som redan är imlementerade. * (En klass kan ärva från flera interface men bara en klass.) */ Console.WriteLine("\n\n\n\nUserError-exercise"); var userErrors = new List <UserError>() { new NumericInputError(), new TextInputError(), new TextInputError(), new NumericInputError(), new DateTimeInputError(), new BooleanInputError(), new TooLongInputError() }; foreach (var userError in userErrors) { Console.WriteLine(userError.UEMessage()); } Console.WriteLine("Hit any key to continue"); Console.ReadKey(); }