Övning – Granska startkoden
I det här första steget i utvecklingsprocessen granskar du koden som anges i projektmappen Starter.
Granska innehållet i Program.cs-filen
Filen Program.cs innehåller en preliminär version av programmet som du arbetar med. Koden innehåller funktioner för att generera och visa exempeldata för programmet, och den visar en lista med menyalternativ som definierar programmets huvudfunktioner.
Kontrollera att mappen "GuidedProject" (Guided-project-Work-with-variable-data-CSharp-main) är öppen i Visual Studio Code.
Enheten "Förbered" (föregående enhet i den här modulen) innehåller ett installationsavsnitt som beskriver processen för att ladda ned den första startpunkten för det guidade projektet och öppna mappen Visual Studio Code. Om det behövs går du tillbaka och följer installationsanvisningarna.
I vyn "EXPLORER" expanderar du mappen "Starter" och väljer sedan "Program.cs".
När du väljer filen Program.cs öppnas filinnehållet i huvudredigeraren till höger om EXPLORER.
Om EXPLORER-vyn inte är öppen kan du välja/öppna EXPLORER-vyn från aktivitetsfältet längst till vänster i Visual Studio Code. EXPLORER är den översta ikonen i aktivitetsfältet.
Det tar några minuter att granska de första variabeldeklarationerna ö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 visas en kommentar (kommentar nr 1) följt av en lista med variabler. Dessa variabler, från
animalSpeciestillanimalNickname, används för att lagra värdena för husdjursegenskaperna i en flerdimensionell strängmatris som heterourAnimalsoch som är initierad för att innehålla en sträng med noll längd"". MatrisdeklarationenourAnimalsligger lite längre ned i koden.Nästa grupp av variabler (under kommentar nr 2) är en blandning av
stringochintvariabler som används för att generera exempeldata, läsa användarens indata och fastställa avslutningskriterier för huvudprogrammets loop. Lägg märke till kodradenstring? readResult;. Du använder?tecknet för att transformera en normalt icke-nullbar variabeltyp (int, sträng, bool,...) med stöd för den nullbara typen.Anmärkning
När du läser användarens angivna värden med
Console.ReadLine()-metoden är det bäst att aktivera en nullbar strängtyp medstring?för att undvika att kodkompilatorn genererar en varning när du bygger projektet.Den sista variabeln (under kommentar nr 3) är den tvådimensionella strängmatrisen med namnet
ourAnimals. Du initierade antalet rader, som definierats av maxPets, till 8. Antalet egenskaper som du lagrar från början är sex. De sex egenskaperna matchar antalet strängvariabler som du undersökte i exempelkoden, men antalet egenskaper måste expanderas för att lägga till ett fält försuggestedDonation.Rulla ner Program.cs-filen för att undersöka slingan
forsom innehåller enswitchselektionskonstruktion i kodblocket.Kodexemplet är en förkortad version för att spara utrymme.
// #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; }Observera att loopen
foranvänder variabelnmaxPetsför att upprätta en övre gräns för antalet iterationer efter kommentar nr 4.Observera också att konstruktionen
switchselektivt förgrenar koden så att du kan definiera olika husdjursegenskaper för husdjuren i exempeldatauppsättningen.Du använder en
switchinstruktion för att definiera olika värden för de första fyra iterationerna i loopenfor. Efter exempeldatabearbetningen är alla egenskaper tomma, eller nolllängdssträngar.Värdena för de djuriska karakteristiska variablerna tilldelas till matrisen ourAnimals längst ned i loopen
for.Rulla längst ned i kodfilen i Visual Studio Code. Granska koden som används för att visa menyalternativen och samla in indata från användarens val.
Observera följande kod:
// #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");Ta en minut att granska de två
caseuttrycken.Det finns bara två menyalternativ som fungerar med en begränsad version av programmet. Startprogrammet innehåller endast de funktioner som behövs för att köra och testa funktioner prototyp.
Observera att kodraden
readResult = Console.ReadLine();följs av en kontroll av ett null-värde.Koden som använder
Console.ReadLine()metoden har värdet inställt på den nullbara strängenreadResultför att undvika att kodkompilatorn genererar en varning när du skapar projektet.
Kontrollera ditt arbete
Testa startkodkonsolappen i terminalens kommandoprompt, bygg och kör projektkoden med ett kommando genom att ange:
dotnet run.Anmärkning
Terminalprompten måste öppnas i startmappen och TERMINAL bör se ut ungefär som
..\ArrayGuidedProject\starter>När koden körs visas två menyalternativ.
- Ange:
1, för att testa utdata för "Visa all aktuell information om våra husdjur" - Ange:
2för att testa platshållarmeddelandet "under konstruktion"
- Ange:
Ange:
1, följt av att trycka på returknappen för att "visa alla husdjur".Kontrollera att all information om husdjur visas.
När du observerar data om alla husdjur bör det sista husdjuret som visas matcha följande utdata:
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 continueTryck på Retur för att fortsätta och gå tillbaka till menyn.
I menyprompten anger du
2följt av att trycka på returknappen.Det här valet är en platshållare för funktionen "Visa alla hundar med en angiven egenskap".
Kontrollera att meddelandet
UNDER CONSTRUCTIONvisas förDisplay all dogs with a specified characteristicval.Observera följande utdata:
UNDER CONSTRUCTION - please check back next month to see progress. Press the Enter key to continue.Skriv
exitpå appmenyn för att avsluta programmet och stäng sedan terminalpanelen.Programmet bör avslutas.
Nu är du redo att börja utveckla de nya funktionerna.