Øvelse – gennemse startkode

Fuldført

I dette første trin i udviklingsprocessen skal du gennemse den kode, der er angivet i startprojektmappen.

Gennemse indholdet af den Program.cs fil

Filen Program.cs indeholder en foreløbig version af det program, du arbejder på. Koden indeholder funktioner til generering og visning af eksempeldataene for programmet, og den viser en liste over menupunkter, der definerer programmets hovedfunktioner.

  1. Sørg for, at du har mappen "GuidedProject" (Guided-project-Work-with-variable-data-CSharp-main) åben i Visual Studio Code.

    Enheden "Forbered" (den forrige lektion i dette modul) indeholder et installationsafsnit, der beskriver processen til hentning af startpunktet for det guidede projekt og åbning af mappen Visual Studio Code. Hvis det er nødvendigt, skal du gå tilbage og følge installationsvejledningen.

  2. Udvid mappen "Starter" i visningen "EXPLORER", og vælg derefter "Program.cs".

    Når du vælger den Program.cs fil, åbnes filindholdet i hovededitorområdet til højre for STIFINDER.

    Hvis STIFINDER-visningen ikke er åben, kan du vælge/åbne STIFINDER-visningen fra aktivitetslinjen længst til venstre i Visual Studio Code. EXPLORER er det øverste ikon på aktivitetslinjen.

  3. Brug et par minutter på at gennemse de oprindelige variabelerklæringer øverst i filen Program.cs.

    // #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];
    

    Først kan du se en kommentar (kommentar nr. 1) efterfulgt af en liste over variabler. Disse variabler animalSpecies , til animalNickname, bruges til at indeholde værdierne for kæledyrsegenskaberne i en flerdimensionel strengmatrix med navnet ourAnimalsog initialiseret til at indeholde en streng ""af længden nul . Matrixerklæringen ourAnimals er lidt længere nede i koden.

    Den næste gruppe variabler (under kommentar nr. 2) er en blanding af string og int variabler, der bruges til at hjælpe med at generere eksempeldata, læse brugerinput og etablere afslutningskriterier for hovedprogramløkken. Bemærk kodelinjen string? readResult;. Du bruger tegnet ? til at transformere en variabeltype, der normalt ikke kan være null (int, streng, bool,...) med understøttelse af typen, der kan være null.

    Bemærk

    Når du læser bruger indtastede værdier med Console.ReadLine() metoden, er det bedst at aktivere en typestreng, der kan være null, ved hjælp af string? for at undgå, at kodekompileren genererer en advarsel, når du bygger projektet.

    Den sidste variabel (under kommentar nr. 3) er den todimensionelle strengmatrix med navnet ourAnimals. Du initialiserede antallet af rækker, der er defineret af maxPets, til 8. Det antal egenskaber, du gemmer i starten, er seks. De seks egenskaber svarer til antallet af strengvariabler, som du undersøgte i eksempelkoden, men antallet af egenskaber skal udvides for at tilføje et felt for suggestedDonation.

  4. Rul ned i den Program.cs fil for at undersøge den for løkke, der indeholder en switch markeringskonstruktion i kodeblokken.

    Kodeeksemplet er en forkortet version for at spare plads.

    // #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. Bemærk, at løkken for bruger variablen maxPets til at oprette en øvre grænse for antallet af gentagelser efter kommentar nr. 4.

  6. Bemærk også, at konstruktionen switch selektivt forgrener koden, så du kan definere forskellige kæledyrsegenskaber for kæledyrene i eksempeldatasættet.

    Du kan bruge en switch sætning til at definere forskellige værdier for de første fire gentagelser af løkken for . Efter behandlingen af eksempeldata er alle egenskaber tomme eller strenge af længden nul.

    Værdierne for de karakteristiske dyrs variabler tildeles til matrixen ourAnimals nederst i løkken for .

  7. Rul til bunden af kodefilen i Visual Studio Code. Undersøg den kode, der bruges til at få vist menuindstillingerne, og hent inputtet fra brugerens valg.

    Du skal overholde følgende kode:

    // #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. Brug et minut på at gennemgå de to case udsagn.

    Der er kun to menuindstillinger, der arbejder med en begrænset version af programmet. Startprogrammet indeholder kun de funktioner, der er nødvendige for at køre og teste funktioner.

  9. Bemærk, at kodelinjen readResult = Console.ReadLine(); efterfølges af en kontrol af en null-værdi.

    Den kode, der bruger Console.ReadLine() metoden , har værdien angivet til den streng readResult , der kan være null, for at undgå, at kodekompileren genererer en advarsel, når du bygger projektet.

Kontrollér dit arbejde

  1. Test startkodekonsolappen ved ATP-kommandoprompten build & kør projektkoden med én kommando ved at angive: dotnet run.

    Bemærk

    TERMINAL-prompten skal åbnes i startmappen, og TERMINALen skal ligne ..\ArrayGuidedProject\starter>

    Når koden kører, vises der to menupunkter.

    • Angiv: 1for at teste outputtet "Vis alle vores aktuelle kæledyrsoplysninger"
    • Angiv: 2for at teste pladsholdermeddelelsen "under oprettelse"
  2. Enter: 1efterfulgt af at trykke på tasten "Enter" for at "vise alle kæledyr".

  3. Kontrollér, at alle kæledyrsoplysningerne vises.

    Når du ser på dataene for alle kæledyr, skal det senest viste kæledyr matche følgende output:

    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. Tryk på Enter for at fortsætte og vende tilbage til menuen.

  5. I menuprompten skal du angive 2 efterfulgt af at trykke på tasten "Enter".

    Dette valg er en pladsholder til "Vis alle hunde med en angivet egenskab" funktionalitet.

  6. Kontrollér, at meddelelsen UNDER CONSTRUCTION vises for Display all dogs with a specified characteristic markering.

    Du bør se følgende output:

    UNDER CONSTRUCTION - please check back next month to see progress.
    Press the Enter key to continue.
    
  7. Skriv exiti appmenuen for at afslutte programmet, og luk derefter terminalpanelet.

    Programmet skal afsluttes.

Nu er du klar til at begynde at udvikle de nye funktioner.