Exercice - Passer en revue le code de démarrage
Dans cette première étape du processus de développement, vous passez en revue le code fourni dans le dossier de projet Starter.
Passer en revue le contenu du fichier Program.cs
Le fichier Program.cs contient une version préliminaire de l’application sur laquelle vous travaillez. Le code inclut des fonctionnalités permettant de générer et d’afficher les exemples de données de l’application, et affiche une liste d’options de menu qui définissent les principales fonctionnalités de l’application.
Vérifiez que vous disposez du dossier « GuidedProject » (Guided-project-Work-with-variable-data-CSharp-main) ouvert dans Visual Studio Code.
L’unité « Prepare » (l’unité précédente de ce module) comprend une section d’installation qui décrit le processus de téléchargement du point de départ initial du projet guidé et l’ouverture du dossier Visual Studio Code. Si nécessaire, revenez en arrière et suivez les instructions d’installation.
Dans la vue « EXPLORER », développez le dossier « Starter », puis sélectionnez « Program.cs ».
Lorsque vous sélectionnez le fichier Program.cs, le contenu du fichier s’ouvre dans la zone de l’éditeur principal à droite de l’EXPLORATEUR.
Si l’affichage EXPLORATEUR n’est pas ouvert, vous pouvez sélectionner/ouvrir l’affichage EXPLORATEUR à partir de la barre d’activité sur le côté gauche de Visual Studio Code. EXPLORER est l’icône la plus haute dans la barre d’activité.
Prenez quelques minutes pour passer en revue les déclarations de variables initiales en haut du fichier 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];Tout d’abord, vous voyez un commentaire (commentaire n° 1) suivi d’une liste de variables. Ces variables,
animalSpeciesviaanimalNickname, utilisées pour contenir les valeurs des caractéristiques de l’animal de compagnie dans un tableau de chaînes multidimensionnel nomméourAnimals, et initialisées pour contenir une chaîne""de longueur nulle . La déclaration de tableauourAnimalsse trouve un peu plus bas dans le code.Le groupe de variables suivant (sous commentaire n° 2) est un mélange de variables
stringetintutilisées pour aider à générer des données d'exemple, lire les entrées utilisateur et établir des critères de sortie pour la boucle principale du programme. Notez la lignestring? readResult;de code . Vous utilisez le symbole?pour transformer un type de variable normalement non-nullable (int, string, bool,...) en ajoutant la prise en charge du type nullable.Remarque
Lors de la lecture des valeurs entrées par l’utilisateur avec la
Console.ReadLine()méthode, il est préférable d’activer une chaîne de type Nullable à l’aidestring?d’éviter que le compilateur de code génère un avertissement lorsque vous générez le projet.La variable finale (sous le commentaire n° 3) est le tableau de chaînes à deux dimensions nommé
ourAnimals. Vous avez initialisé le nombre de lignes, définies par maxPets, à 8. Le nombre de caractéristiques que vous stockez initialement est de six. Les six caractéristiques correspondent au nombre de variables de chaîne que vous avez examinées dans l’exemple de code, mais le nombre de caractéristiques doit être étendu pour ajouter un champ poursuggestedDonation.Parcourez le fichier Program.cs pour examiner la
forboucle qui contient uneswitchstructure de sélection dans son bloc de code.L’exemple de code est une version abrégée pour économiser de l’espace.
// #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; }Notez que la
forboucle utilise lamaxPetsvariable pour établir une limite supérieure sur le nombre d’itérations suivant le commentaire n° 4.Notez également que la
switchconstruction branche de manière sélective le code afin que vous puissiez définir différentes caractéristiques pour les animaux de compagnie dans l’exemple de jeu de données.Vous utilisez une
switchinstruction pour définir des valeurs différentes pour les quatre premières itérations de laforboucle. Une fois le traitement des données d'échantillon terminé, toutes les caractéristiques sont des chaînes vides ou de longueur nulle.Les valeurs des variables caractéristiques animales sont affectées au tableau ourAnimals en bas de la
forboucle.Faites défiler jusqu’au bas du fichier de code dans Visual Studio Code. Examinez le code utilisé pour afficher les options de menu et capturer l’entrée de la sélection de l’utilisateur.
Vous devez observer le code suivant :
// #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");Prenez le temps d’examiner les deux instructions
case.Il n’existe que deux options de menu qui fonctionnent avec une version limitée de l’application. L’application de démarrage fournit uniquement les fonctionnalités nécessaires pour l’exécution et le test du prototype de fonctionnalités.
Notez que la ligne de code est
readResult = Console.ReadLine();suivie d’une vérification d’une valeur Null.Dans le code utilisant la méthode
Console.ReadLine(), la valeur est définie sur la chaînereadResultnullable pour éviter que le compilateur de code génère un avertissement quand vous générez le projet.
Vérifier votre travail
Testez l’application console du code de démarrage. À l’invite de commandes TERMINAL, générez et exécutez votre code de votre projet en une seule commande en entrant :
dotnet run.Remarque
L’invite TERMINAL doit être ouverte dans le dossier de démarrage et le TERMINAL doit ressembler à
..\ArrayGuidedProject\starter>Lorsque le code s’exécute, deux éléments de menu sont affichés.
- Saisir :
1, pour tester le résultat « Répertorier toutes nos informations actuelles sur les animaux de compagnie » - Entrez :
2, pour tester le message d’espace réservé « En cours de construction
- Saisir :
Entrée :
1, suivi d’appuyer sur la touche « Entrée » pour « afficher tous les animaux de compagnie ».Vérifiez que toutes les informations sur les animaux de compagnie s’affichent.
Comme vous observez les données sur tous les animaux domestiques, le dernier animal affiché doit correspondre à la sortie suivante :
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 continueAppuyez sur la touche Entrée pour continuer et revenir au menu.
À l’invite du menu, entrez
2, puis appuyez sur la touche Entrée.Ce choix est un espace réservé pour « Afficher tous les chiens avec une fonctionnalité spécifiée ».
Vérifiez que le message
UNDER CONSTRUCTIONs’affiche pour la sélectionDisplay all dogs with a specified characteristic.Vous devriez observer la sortie suivante :
UNDER CONSTRUCTION - please check back next month to see progress. Press the Enter key to continue.Tapez
exitdans le menu de l’application pour mettre fin au programme, puis fermez le panneau du terminal.Le programme doit se fermer.
Vous êtes maintenant prêt à commencer à développer les nouvelles fonctionnalités.