Exerciții - Cod de pornire revizuire
În acest prim pas al procesului de dezvoltare, revizuiți codul furnizat în folderul de proiect Starter.
Revizuirea conținutului fișierului Program.cs
Fișierul Program.cs conține o versiune preliminară a aplicației la care lucrați. Codul include caracteristici pentru a genera și a afișa datele eșantion pentru aplicație și afișează o listă de opțiuni de meniu care definesc caracteristicile principale ale aplicației.
Asigură-te că ai folderul "GuidedProject" (Guided-project-Work-with-variable-data-CSharp-main) deschis în Visual Studio Code.
Unitatea "Pregătire" (unitatea anterioară din acest modul) include o secțiune de configurare care descrie procesul de descărcare a punctului de pornire inițial pentru proiectul ghidat și deschiderea folderului Visual Studio Code. Dacă este necesar, reveniți și urmați instrucțiunile de configurare.
În vizualizarea "EXPLORER", extindeți folderul "Starter", apoi selectați "Program.cs".
Atunci când selectați fișierul Program.cs, conținutul fișierului se deschide în zona Editor principală din partea dreaptă a EXPLORER.
Dacă vizualizarea EXPLORER nu este deschisă, puteți să selectați/să deschideți vizualizarea EXPLORER din Bara de activitate din extremitatea stângă a Visual Studio Code. EXPLORER este pictograma cea mai de sus de pe Bara de activități.
Durează câteva minute pentru a revizui declarațiile variabilei inițiale din partea de sus a fișierului 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];Mai întâi, vedeți un comentariu (comentariul nr. 1) urmat de o listă de variabile. Aceste variabile,
animalSpeciesprinanimalNickname, utilizate pentru a păstra valorile caracteristicilor animalelor de companie într-o matrice de șiruri multidimensionale denumiteourAnimals, și inițializate pentru a conține un șir""de lungime zero . DeclarațiaourAnimalsmatrice este puțin mai jos în cod.Următorul grup de variabile (sub comentariul nr. 2) sunt o combinație de
stringvariabile șiintutilizate pentru a genera date eșantion, a citi datele utilizatorului și a stabili criterii de ieșire pentru bucla programului principal. Observați liniastring? readResult;de cod .?Utilizați caracterul pentru a transforma un tip variabil nenullabil normal (int, șir, bool,...) cu suport pentru tipul nul.Notă
Atunci când citiți valorile introduse de utilizator cu
Console.ReadLine()metoda, se recomandă să activați un șir de tip nul, utilizândstring?pentru a evita compilatorul de cod care generează un avertisment atunci când construiți proiectul.Variabila finală (sub comentariul nr. 3) este matricea de șir bidimensională denumită
ourAnimals. Ați inițializat numărul de rânduri, definit de maxPets, la 8. Numărul de caracteristici pe care le stocați inițial este șase. Cele șase caracteristici se potrivesc cu numărul de variabile de șir pe care le-ați examinat în codul eșantion, dar numărul de caracteristici trebuie să se extindă pentru a adăuga un câmp pentrusuggestedDonation.Defilați în jos în fișierul Program.cs pentru a examina bucla
forcare conține oswitchconstrucție de selecție în blocul său de cod.Eșantionul de cod este o versiune scurtată pentru a economisi spațiu.
// #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; }Observați că bucla
forutilizează variabilamaxPetspentru a stabili o limită superioară a numărului de iterații care urmează după comentariul nr. 4.De asemenea, observați că
switchconstruirea ramifică selectiv codul, astfel încât să puteți defini caracteristici diferite ale animalelor de companie pentru animalele de companie din setul de date eșantion.Utilizați o
switchinstrucțiune pentru a defini valori diferite pentru primele patru iterații ale bucleifor. După procesarea datelor eșantion, toate caracteristicile sunt goale sau nu au lungime zero.Valorile variabilelor caracteristice animalelor sunt atribuite matricei NoastreAnimals în partea de jos a buclei
for.Defilați în partea de jos a fișierului de cod în Visual Studio Code. Examinați codul utilizat pentru afișarea opțiunilor de meniu și capturați intrarea selecției utilizatorului.
Ar trebui să respectați următorul cod:
// #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");Fiți un minut pentru a revizui cele două
casedeclarații.Există doar două opțiuni de meniu care funcționează cu o versiune limitată a aplicației. Aplicația starter oferă doar capacitățile necesare pentru rularea și testarea prototipului caracteristicilor.
Observați că linia de cod este
readResult = Console.ReadLine();urmată de o verificare pentru o valoare nulă.Codul utilizând
Console.ReadLine()metoda, are valoarea setată la șirulreadResultnullable, pentru a evita compilatorul de cod care generează un avertisment atunci când construiți proiectul.
Verificați-vă activitatea
Testați aplicația consolă de cod starter, la compilarea liniei de comandă TERMINAL și rulați codul de proiect cu o comandă introducând:
dotnet run.Notă
Solicitarea TERMINAL trebuie să fie deschisă în folderul de pornire și TERMINALul ar trebui să arate asemănător cu
..\ArrayGuidedProject\starter>Când rulează codul, se afișează două elemente de meniu.
- Enter:
1, pentru a testa rezultatul "Listați toate informațiile noastre curente despre animale de companie" - Enter:
2, pentru a testa mesajul substituent "sub construcție"
- Enter:
Enter:
1, urmat de apăsarea tastei "Enter" pentru a "afișa toate animalele de companie".Verificați dacă se afișează toate informațiile despre animale de companie.
Pe măsură ce observați datele despre toate animalele de companie, ultimul animal de companie afișat ar trebui să se potrivească cu următoarea ieșire:
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 continueApăsați tasta Enter pentru a continua și a reveni la meniu.
În solicitarea de meniu, introduceți
2urmat de apăsarea tastei "Enter".Această opțiune este un substituent pentru funcționalitatea "Se afișează toți câinii cu o caracteristică specificată".
Verificați dacă
UNDER CONSTRUCTIONse afișează mesajul pentruDisplay all dogs with a specified characteristicselecție.Ar trebui să observați următoarea ieșire:
UNDER CONSTRUCTION - please check back next month to see progress. Press the Enter key to continue.Tastați
exit, în meniul aplicației, pentru a încheia programul, apoi închideți panoul terminal.Programul ar trebui să iasă.
Acum sunteți gata să începeți să dezvoltați noile caracteristici.