Exercice - Passer en revue le code de démarrage

Effectué

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.

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

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

  3. 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, animalSpecies via animalNickname, 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 tableau ourAnimals se trouve un peu plus bas dans le code.

    Le groupe de variables suivant (sous commentaire n° 2) est un mélange de variables string et int utilisé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 ligne string? 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’aide string? 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 pour suggestedDonation.

  4. Parcourez le fichier Program.cs pour examiner la for boucle qui contient une switch structure 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;
    }
    
  5. Notez que la for boucle utilise la maxPets variable pour établir une limite supérieure sur le nombre d’itérations suivant le commentaire n° 4.

  6. Notez également que la switch construction 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 switch instruction pour définir des valeurs différentes pour les quatre premières itérations de la for boucle. 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 for boucle.

  7. 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");
    
  8. 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.

  9. 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îne readResult nullable pour éviter que le compilateur de code génère un avertissement quand vous générez le projet.

Vérifier votre travail

  1. 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
  2. Entrée : 1, suivi d’appuyer sur la touche « Entrée » pour « afficher tous les animaux de compagnie ».

  3. 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 continue
    
  4. Appuyez sur la touche Entrée pour continuer et revenir au menu.

  5. À 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 ».

  6. Vérifiez que le message UNDER CONSTRUCTION s’affiche pour la sélection Display 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.
    
  7. Tapez exit dans 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.