Oefening: starterscode controleren
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.
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.
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.
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,
animalSpeciestot en metanimalNickname, worden gebruikt om de waarden van de huisdierkenmerken vast te houden in een multidimensionale string-array met de naamourAnimals, en geïnitialiseerd om een string""met een lengte van nul te bevatten. DeourAnimalsmatrixdeclaratie staat iets verder naar beneden in de code.De volgende groep variabelen (onder commentaar #2) is een mix van
stringvariabelen dieintworden gebruikt om voorbeeldgegevens te genereren, gebruikersinvoer te lezen en exit-criteria voor de hoofdprogrammalus vast te stellen. Let op de coderegelstring? 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 stringstring?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 voorsuggestedDonation.Schuif omlaag in het Program.cs bestand om de
forlus te bekijken die eenswitchselectieconstructie 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; }Merk op dat de
forlus demaxPetsvariabele gebruikt om een bovengrens vast te stellen voor het aantal iteraties na opmerking # 4.Merk ook op dat de
switchconstruct de code selectief vertakt, zodat u verschillende huisdierkenmerken voor de huisdieren in de voorbeeldgegevensset kunt definiëren.U gebruikt een
switchinstructie om verschillende waarden te definiëren voor de eerste vier iteraties van deforlus. 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
forlus.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");Neem even de tijd om de twee
caseuitspraken 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.
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 stringreadResultom te voorkomen dat de codecompiler een waarschuwing genereert wanneer u het project bouwt.
Controleer uw werk
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
- Voer in:
Enter:
1, gevolgd door het indrukken van de "Enter"-toets om "alle huisdieren weer te geven".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 continueDruk op de Enter-toets om door te gaan en terug te keren naar het menu.
Voer bij
2de 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".
Controleer of het
UNDER CONSTRUCTIONbericht wordt weergegeven voorDisplay all dogs with a specified characteristicselectie.U moet de volgende uitvoer bekijken:
UNDER CONSTRUCTION - please check back next month to see progress. Press the Enter key to continue.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.