Esercizio - Esaminare il codice di avvio
In questo primo passaggio del processo di sviluppo si esamina il codice fornito nella cartella Progetto iniziale.
Esaminare il contenuto del file Program.cs
Il file Program.cs contiene una versione preliminare dell'applicazione su cui si sta lavorando. Il codice include funzionalità per generare e visualizzare i dati di esempio per l'applicazione e visualizza un elenco di opzioni di menu che definiscono le funzionalità principali dell'applicazione.
Assicurarsi di disporre della cartella "GuidedProject" (Guided-project-Work-with-variable-data-CSharp-main) aperta in Visual Studio Code.
L'unità "Prepare" (l'unità precedente di questo modulo) include una sezione setup che descrive il processo di download del punto iniziale iniziale per il progetto guidato e l'apertura della cartella di Visual Studio Code. Se necessario, tornare indietro e seguire le istruzioni per la configurazione.
Nella visualizzazione "EXPLORER" espandere la cartella "Starter", quindi selezionare "Program.cs".
Quando si seleziona il file Program.cs, il contenuto del file viene aperto nell'area editor principale a destra di EXPLORER.
Se la visualizzazione EXPLORER non è aperta, è possibile selezionare/aprire la visualizzazione EXPLORER dalla barra attività a sinistra di Visual Studio Code. EXPLORER è l'icona più in alto sulla barra delle attività.
Prendersi qualche minuto per esaminare le dichiarazioni iniziali delle variabili nella parte superiore del file 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];Prima di tutto, viene visualizzato un commento (commento n. 1) seguito da un elenco di variabili. Queste variabili,
animalSpeciestramiteanimalNickname, utilizzate per contenere i valori delle caratteristiche dell'animale domestico all'interno di una matrice di stringhe multidimensionali denominataourAnimalse inizializzate per contenere una stringa""di lunghezza zero. LaourAnimalsdichiarazione di matrice è un po' più in basso nel codice.Il gruppo successivo di variabili (sotto commento n. 2) è una combinazione di
stringvariabili eintusate per generare dati di esempio, leggere l'input dell'utente e stabilire i criteri di uscita per il ciclo di programma principale. Si noti la riga di codicestring? readResult;. Utilizzi il carattere?per trasformare un tipo di variabile normalmente non annullabile (int, string, bool,...) per aggiungere il supporto per la versione annullabile.Annotazioni
Quando si leggono i valori immessi dall'utente con il
Console.ReadLine()metodo , è consigliabile abilitare una stringa di tipo nullable usandostring?per evitare che il compilatore di codice generi un avviso quando si compila il progetto.La variabile finale (in commento n. 3) è la matrice di stringhe bidimensionale denominata
ourAnimals. Il numero di righe, definito da maxPets, è stato inizializzato su 8. Il numero di caratteristiche archiviate inizialmente è sei. Le sei caratteristiche corrispondono al numero di variabili stringa esaminate nel codice di esempio, ma il numero di caratteristiche deve essere espanso per aggiungere un campo persuggestedDonation.Scorrere verso il basso il file Program.cs per esaminare il ciclo
forcontenente un costruttoswitchdi selezione all'interno del relativo blocco di codice.L'esempio di codice è una versione abbreviata per risparmiare spazio.
// #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; }Si noti che il
forciclo usa lamaxPetsvariabile per stabilire un limite superiore sul numero di iterazioni che seguono il commento 4.Si noti anche che il
switchcostrutto dirama in modo selettivo il codice in modo da poter definire caratteristiche diverse per gli animali domestici nel set di dati di esempio.Si usa un'istruzione
switchper definire valori diversi per le prime quattro iterazioni delforciclo. Dopo l'elaborazione dei dati di esempio, tutte le caratteristiche sono vuote o di lunghezza zero, stringa.I valori delle variabili delle caratteristiche degli animali vengono assegnati all'array ourAnimals nella parte inferiore del ciclo
for.Scorrere fino alla fine del file di codice in Visual Studio Code. Esaminare il codice usato per visualizzare le opzioni di menu e acquisire l'input della selezione dell'utente.
È necessario osservare il codice seguente:
// #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");Prenditi un momento per rivedere le due
casedichiarazioni.Sono disponibili solo due opzioni di menu che riguardano una versione limitata dell'applicazione. L'applicazione iniziale fornisce solo le funzionalità necessarie per l'esecuzione e il test di funzionalità prototipo.
Si noti che la riga di codice è
readResult = Console.ReadLine();seguita da un controllo per un valore Null.Il codice che utilizza il metodo
Console.ReadLine()ha il valore impostato su una variabile nullable di tipo stringareadResultper evitare che il compilatore di codice generi un avviso durante la compilazione del progetto.
Controlla il tuo lavoro
Testa l'app console del codice di avvio, al prompt dei comandi TERMINAL compila ed esegui il codice del progetto con un comando immettendo:
dotnet run.Annotazioni
Il prompt TERMINAL deve essere aperto nella cartella inizio e il TERMINAL dovrebbe essere simile a
..\ArrayGuidedProject\starter>Quando viene eseguito il codice, vengono visualizzate due voci di menu.
- Immettere "
1" per testare l'output "Elencare tutte le informazioni sull'animale domestico corrente" - Immettere:
2per testare il messaggio segnaposto "in costruzione"
- Immettere "
Immettere:
1e premere poi INVIO per visualizzare tutti gli animali domestici.Verificare che tutte le informazioni sugli animali domestici siano visualizzate.
Come si osservano i dati su tutti gli animali domestici, l'ultimo animale domestico visualizzato dovrebbe corrispondere all'output seguente:
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 continuePremere INVIO per continuare e tornare al menu.
Quando richiesto dal menu, immettere
2e premere il tasto "Invio".Questa scelta è un segnaposto per la funzionalità "Visualizzare tutti i cani con una caratteristica specificata".
Verificare che il messaggio
UNDER CONSTRUCTIONsia visualizzato per la selezioneDisplay all dogs with a specified characteristic.e si dovrà osservare l'output seguente:
UNDER CONSTRUCTION - please check back next month to see progress. Press the Enter key to continue.Digitare
exitnel menu dell'app per terminare il programma e quindi chiudere il pannello del terminale.Il programma deve terminare.
A questo punto è possibile iniziare a sviluppare le nuove funzionalità.