Exerciții - Cod de pornire revizuire

Finalizat

Î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.

  1. 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.

  2. Î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.

  3. 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, animalSpecies prin animalNickname, utilizate pentru a păstra valorile caracteristicilor animalelor de companie într-o matrice de șiruri multidimensionale denumite ourAnimals, și inițializate pentru a conține un șir ""de lungime zero . Declarația ourAnimals matrice este puțin mai jos în cod.

    Următorul grup de variabile (sub comentariul nr. 2) sunt o combinație de string variabile și int utilizate pentru a genera date eșantion, a citi datele utilizatorului și a stabili criterii de ieșire pentru bucla programului principal. Observați linia string? 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ând string? 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 pentru suggestedDonation.

  4. Defilați în jos în fișierul Program.cs pentru a examina bucla for care conține o switch construcț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;
    }
    
  5. Observați că bucla for utilizează variabila maxPets pentru a stabili o limită superioară a numărului de iterații care urmează după comentariul nr. 4.

  6. De asemenea, observați că switch construirea 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 switch instrucțiune pentru a defini valori diferite pentru primele patru iterații ale buclei for . 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 .

  7. 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");
    
  8. Fiți un minut pentru a revizui cele două case declaraț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.

  9. 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 șirul readResult nullable, pentru a evita compilatorul de cod care generează un avertisment atunci când construiți proiectul.

Verificați-vă activitatea

  1. 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"
  2. Enter: 1, urmat de apăsarea tastei "Enter" pentru a "afișa toate animalele de companie".

  3. 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 continue
    
  4. Apăsați tasta Enter pentru a continua și a reveni la meniu.

  5. În solicitarea de meniu, introduceți 2 urmat 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ă".

  6. Verificați dacă UNDER CONSTRUCTION se afișează mesajul pentru Display all dogs with a specified characteristic selecț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.
    
  7. 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.