Oefening: starterscode controleren

Voltooid

In deze eerste stap van het ontwikkelingsproces controleert u de code die in de projectmap Starter staat.

De inhoud van het Program.cs-bestand controleren

Het Program.cs bestand bevat een voorlopige versie van de toepassing waaraan u werkt. De code bevat functies voor het genereren en weergeven van de voorbeeldgegevens voor de toepassing, en geeft een lijst met menuopties weer die de belangrijkste functies van de toepassing definiëren.

  1. Zorg ervoor dat de map GuidedProject (Guided-project-Work-with-variable-data-CSharp-main) is geopend in Visual Studio Code.

    De eenheid "Voorbereiden" (de vorige eenheid in deze module) bevat een sectie Setup waarin het proces wordt beschreven voor het downloaden van het eerste startpunt voor het begeleide project en het openen van de map Visual Studio Code. Ga zo nodig terug en volg de installatie-instructies.

  2. Vouw in de weergave "VERKENNER" de map "Starter" uit en selecteer vervolgens "Program.cs".

    Wanneer u het Program.cs bestand selecteert, wordt de bestandsinhoud geopend in het hoofdeditorgebied rechts van de VERKENNER.

    Als de EXPLORER-weergave niet is geopend, kunt u de EXPLORER-weergave selecteren/openen op de activiteitenbalk helemaal links van Visual Studio Code. EXPLORER is het bovenste pictogram op de activiteitenbalk.

  3. Neem een paar minuten de tijd om de eerste variabeledeclaraties boven aan het Program.cs bestand te bekijken.

    // #1 the ourAnimals array will store the following: 
    string animalSpecies = "";
    string animalID = "";
    string animalAge = "";
    string animalPhysicalDescription = "";
    string animalPersonalityDescription = "";
    string animalNickname = "";
    
    // #2 variables that support data entry
    int maxPets = 8;
    string? readResult;
    string menuSelection = "";
    
    // #3 array used to store runtime data, there is no persisted data
    string[,] ourAnimals = new string[maxPets, 6];
    

    Eerst zie je een opmerking (commentaar #1) gevolgd door een lijst met variabelen. Deze variabelen, animalSpecies tot en met animalNickname, worden gebruikt om de waarden van de huisdierkenmerken vast te houden in een multidimensionale string-array met de naam ourAnimals, en geïnitialiseerd om een string ""met een lengte van nul te bevatten. De ourAnimals matrixdeclaratie staat iets verder naar beneden in de code.

    De volgende groep variabelen (onder commentaar #2) is een mix van string variabelen die int worden gebruikt om voorbeeldgegevens te genereren, gebruikersinvoer te lezen en exit-criteria voor de hoofdprogrammalus vast te stellen. Let op de coderegel string? readResult;. U gebruikt het ? teken om een variabel type (int, string, bool,...) te transformeren dat normaal gesproken niet kan worden geannuleerd met ondersteuning voor het nulleerbare type.

    Opmerking

    Bij het lezen van door de gebruiker ingevoerde waarden met de Console.ReadLine() methode, is het het beste om een nullable type string string? in te schakelen om te voorkomen dat de codecompiler een waarschuwing genereert wanneer u het project bouwt.

    De laatste variabele (onder commentaar #3) is de tweedimensionale string-array met de naam ourAnimals. U hebt het aantal rijen, gedefinieerd door maxPets, geïnitialiseerd naar 8. Het aantal kenmerken dat u in eerste instantie opslaat, is zes. De zes kenmerken komen overeen met het aantal tekenreeksvariabelen dat u in de voorbeeldcode hebt onderzocht, maar het aantal kenmerken moet worden uitgebreid om een veld voor suggestedDonation.

  4. Schuif omlaag in het Program.cs bestand om de for lus te bekijken die een switch selectieconstructie in het codeblok bevat.

    Het codevoorbeeld is een verkorte versie om ruimte te besparen.

    // #4 create sample data ourAnimals array entries
    for (int i = 0; i < maxPets; i++)
    {
        switch (i)
        {
            case 0:
                animalSpecies = "dog";
                animalID = "d1";
                animalAge = "2";
                animalPhysicalDescription = "medium sized cream colored female golden retriever weighing about 45 pounds. housebroken.";
                animalPersonalityDescription = "loves to have her belly rubbed and likes to chase her tail. gives lots of kisses.";
                animalNickname = "lola";
                break;
    
            case 1:
                animalSpecies = "dog";
                animalID = "d2";
                animalAge = "9";
                animalPhysicalDescription = "large reddish-brown male golden retriever weighing about 85 pounds. housebroken.";
                animalPersonalityDescription = "loves to have his ears rubbed when he greets you at the door, or at any time! loves to lean-in and give doggy hugs.";
                animalNickname = "gus";
                break;
    
            // case 2: deleted for brevity
            // case 3: deleted for brevity
    
            default:
                animalSpecies = "";
                animalID = "";
                animalAge = "";
                animalPhysicalDescription = "";
                animalPersonalityDescription = "";
                animalNickname = "";
                break;
        }
        ourAnimals[i, 0] = "ID #: " + animalID;
        ourAnimals[i, 1] = "Species: " + animalSpecies;
        ourAnimals[i, 2] = "Age: " + animalAge;
        ourAnimals[i, 3] = "Nickname: " + animalNickname;
        ourAnimals[i, 4] = "Physical description: " + animalPhysicalDescription;
        ourAnimals[i, 5] = "Personality: " + animalPersonalityDescription;
    }
    
  5. Merk op dat de for lus de maxPets variabele gebruikt om een bovengrens vast te stellen voor het aantal iteraties na opmerking # 4.

  6. Merk ook op dat de switch construct de code selectief vertakt, zodat u verschillende huisdierkenmerken voor de huisdieren in de voorbeeldgegevensset kunt definiëren.

    U gebruikt een switch instructie om verschillende waarden te definiëren voor de eerste vier iteraties van de for lus. Na de verwerking van de voorbeeldgegevens zijn alle kenmerken een lege tekenreeks of een tekenreeks met een lengte van nul.

    De waarden van de dierkenmerkende variabelen worden toegewezen aan de ourAnimals-array onderaan de for lus.

  7. Schuif naar de onderkant van het codebestand in Visual Studio Code. Onderzoek de code die wordt gebruikt om de menu-opties weer te geven en leg de invoer van de selectie van de gebruiker vast.

    U dient de volgende code in acht te nemen:

    // #5 display the top-level menu options
    do
    {
        // NOTE: the Console.Clear method is throwing an exception in debug sessions
        Console.Clear();
    
        Console.WriteLine("Welcome to the Contoso PetFriends app. Your main menu options are:");
        Console.WriteLine(" 1. List all of our current pet information");
        Console.WriteLine(" 2. Display all dogs with a specified characteristic");
        Console.WriteLine();
        Console.WriteLine("Enter your selection number (or type Exit to exit the program)");
    
        readResult = Console.ReadLine();
        if (readResult != null)
        {
            menuSelection = readResult.ToLower();
        }
    
        // use switch-case to process the selected menu option
        switch (menuSelection)
        {
            case "1":
                // list all pet info
                for (int i = 0; i < maxPets; i++)
                {
                    if (ourAnimals[i, 0] != "ID #: ")
                    {
                        Console.WriteLine();
                        for (int j = 0; j < 6; j++)
                        {
                            Console.WriteLine(ourAnimals[i, j]);
                        }
                    }
                }
                Console.WriteLine("\n\rPress the Enter key to continue");
                readResult = Console.ReadLine();
                break;
    
            case "2":
                // Display all dogs with a specified characteristic");
                Console.WriteLine("\nUNDER CONSTRUCTION - please check back next month to see progress.");
                Console.WriteLine("Press the Enter key to continue.");
                readResult = Console.ReadLine();
                break;
    
            default:
                break;
        }
    
    } while (menuSelection != "exit");
    
  8. Neem even de tijd om de twee case uitspraken door te nemen.

    Er zijn slechts twee menu-opties die werken met een beperkte versie van de applicatie. De starter-applicatie biedt alleen de mogelijkheden die nodig zijn voor het uitvoeren en testen van prototypes van functies.

  9. Merk op dat de coderegel wordt readResult = Console.ReadLine(); gevolgd door een controle op een null-waarde.

    De code die de Console.ReadLine() methode gebruikt, heeft de waarde ingesteld op de nullable string readResult om te voorkomen dat de codecompiler een waarschuwing genereert wanneer u het project bouwt.

Controleer uw werk

  1. Test de app voor starterscodeconsoles om bij de opdrachtprompt van TERMINAL uw projectcode te bouwen en uit te voeren met één opdracht door het volgende in te voeren: dotnet run.

    Opmerking

    De TERMINAL-prompt moet worden geopend in de startmap en de TERMINAL moet er ongeveer zo uitzien als ..\ArrayGuidedProject\starter>

    Wanneer de code wordt uitgevoerd, worden twee menu-items weergegeven.

    • Voer in: 1, om de uitvoer "Lijst met al onze huidige huisdierinformatie" te testen
    • Voer in: 2, om het tijdelijke bericht "in aanbouw" te testen
  2. Enter: 1, gevolgd door het indrukken van de "Enter"-toets om "alle huisdieren weer te geven".

  3. Controleer of alle informatie over huisdieren wordt weergegeven.

    Terwijl u de gegevens van alle huisdieren bekijkt, moet het laatst weergegeven huisdier overeenkomen met de volgende uitvoer:

    ID #: c4
    Species: cat
    Age: 3
    Nickname: Lion
    Physical description: Medium sized, long hair, yellow, female, about 10 pounds. Uses litter box.
    Personality: A people loving cat that likes to sit on your lap.
    
    Press the Enter key to continue
    
  4. Druk op de Enter-toets om door te gaan en terug te keren naar het menu.

  5. Voer bij 2 de menuprompt in, gevolgd door op de "Enter"-toets te drukken.

    Deze keuze is een tijdelijke aanduiding voor de functionaliteit "Alle honden met een gespecificeerd kenmerk weergeven".

  6. Controleer of het UNDER CONSTRUCTION bericht wordt weergegeven voor Display all dogs with a specified characteristic selectie.

    U moet de volgende uitvoer bekijken:

    UNDER CONSTRUCTION - please check back next month to see progress.
    Press the Enter key to continue.
    
  7. Typ exitin het app-menu om het programma te beëindigen en sluit vervolgens het terminalpaneel.

    Het programma zou moeten worden afgesloten.

Nu ben je klaar om te beginnen met het ontwikkelen van de nieuwe functies.