Øvelse – gennemse startkode
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.
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.
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.
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, tilanimalNickname, bruges til at indeholde værdierne for kæledyrsegenskaberne i en flerdimensionel strengmatrix med navnetourAnimalsog initialiseret til at indeholde en streng""af længden nul . MatrixerklæringenourAnimalser lidt længere nede i koden.Den næste gruppe variabler (under kommentar nr. 2) er en blanding af
stringogintvariabler, der bruges til at hjælpe med at generere eksempeldata, læse brugerinput og etablere afslutningskriterier for hovedprogramløkken. Bemærk kodelinjenstring? 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 afstring?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 forsuggestedDonation.Rul ned i den Program.cs fil for at undersøge den
forløkke, der indeholder enswitchmarkeringskonstruktion 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; }Bemærk, at løkken
forbruger variablenmaxPetstil at oprette en øvre grænse for antallet af gentagelser efter kommentar nr. 4.Bemærk også, at konstruktionen
switchselektivt forgrener koden, så du kan definere forskellige kæledyrsegenskaber for kæledyrene i eksempeldatasættet.Du kan bruge en
switchsætning til at definere forskellige værdier for de første fire gentagelser af løkkenfor. 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.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");Brug et minut på at gennemgå de to
caseudsagn.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.
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 strengreadResult, der kan være null, for at undgå, at kodekompileren genererer en advarsel, når du bygger projektet.
Kontrollér dit arbejde
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"
- Angiv:
Enter:
1efterfulgt af at trykke på tasten "Enter" for at "vise alle kæledyr".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 continueTryk på Enter for at fortsætte og vende tilbage til menuen.
I menuprompten skal du angive
2efterfulgt af at trykke på tasten "Enter".Dette valg er en pladsholder til "Vis alle hunde med en angivet egenskab" funktionalitet.
Kontrollér, at meddelelsen
UNDER CONSTRUCTIONvises forDisplay all dogs with a specified characteristicmarkering.Du bør se følgende output:
UNDER CONSTRUCTION - please check back next month to see progress. Press the Enter key to continue.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.