Oplossingen H16

Dierentuin advanced

Les(sen) uit deze oefening: Via een loop overlopen we alle diertjes. Dankzij is bevragen we vervolgens ieder dier en enkel die dieren waar we van weten dat ze kunnen praten laten we dan de Zegt methode aanroepen nadat we met as tijdelijk omgezet hebben.

In main

//dieren staan ergens in List<Dier> diertjes
//gebruiker gaf bij invoer f in als keuze:
if(userinput=="f")
{
    Console.WriteLine("Welk dier?")
    string dierkeuze=Console.ReadLine();

    switch(dierkeuze)
    {
        case "Slang":
            foreach(var dier in diertjes)
            {
                if(dier is Slang)
                {
                    (dier as Slang).Zegt();
                }
            }
            break;
        case "Varken":
            //idem met Varken 
    }
}

Pro-pro oplossing

Voorgaande resulteert in aardig wat quasi identieke code in de switch. Je kan zelf een generieke methode maken (hebben we niet in leerstof gezien) als volgt (in hoofdprogramma):

(de where is een zogenaamde constraint, uitgelegd hier)

In de switch krijg je dan:

Pokémon vergelijken

In klasse Pokemon:

Een eigen huis

In volgende filmpje leg ik de oplossing stap voor stap uit: video oplossing

Hier kan je de bijhorende code terugvinden: Github oplossing

De code hieronder is een iets andere oplossing dan in het filmpje. Beide zijn evenwaardig.

Les(sen) uit deze oefening: Properties kunnen vele vormen hebben. In deze oefening spelen we met Prijs getter (set mag niet bestaan, er mag ook geen achterliggende instantievariable prijs zijn!) waarbij we deze soms een hardcoded waarde laten teruggeven (500 bij BadKamer, 400 bij Kamer) en soms een berekening laten doen zoals in Salon. Wanneer je Prijs override krijg je standaard in VS de syntax met pijltjes (=>). Door op het lampje te klikken kan je kiezen om dit om te zetten naar de klassieke vorm zoals in deze oplossing.

Main:

Klassen

Luchtvaartshow

Last updated

Was this helpful?