Übung: Überprüfen des Startercodes

Abgeschlossen

In diesem ersten Schritt des Entwicklungsprozesses überprüfen Sie den im Ordner "Starter-Projekt" bereitgestellten Code.

Überprüfen des Inhalts der Datei „Program.cs“

Die Program.cs Datei enthält eine vorläufige Version der Anwendung, an der Sie arbeiten. Der Code enthält Features zum Generieren und Anzeigen der Beispieldaten für die Anwendung und zeigt eine Liste mit Menüoptionen an, die die Hauptfeatures der Anwendung definieren.

  1. Stellen Sie sicher, dass der Ordner "GuidedProject" (Guided-project-Work-with-variable-data-CSharp-main) in Visual Studio Code geöffnet ist.

    Die Einheit "Vorbereiten" (die vorherige Einheit in diesem Modul) enthält einen Setup-Abschnitt, in dem der Prozess zum Herunterladen des ersten Ausgangspunkts für das geführte Projekt und das Öffnen des Ordners Visual Studio Code beschrieben wird. Wechseln Sie bei Bedarf zurück, und folgen Sie den Setupanweisungen.

  2. Erweitern Sie in der Ansicht "EXPLORER" den Ordner "Starter", und wählen Sie dann "Program.cs" aus.

    Wenn Sie die Program.cs Datei auswählen, wird der Dateiinhalt im Haupt-Editor-Bereich rechts vom EXPLORER geöffnet.

    Wenn die EXPLORER-Ansicht nicht geöffnet ist, können Sie die EXPLORER-Ansicht über die Aktivitätsleiste ganz links von Visual Studio Code auswählen/öffnen. EXPLORER ist das oberste Symbol auf der Aktivitätsleiste.

  3. Nehmen Sie sich einige Minuten Zeit, um die anfänglichen Variablendeklarationen oben in der datei Program.cs zu überprüfen.

    // #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];
    

    Zuerst wird ein Kommentar (Kommentar Nr. 1) gefolgt von einer Liste von Variablen angezeigt. Die Variablen animalSpecies bis animalNickname werden verwendet, um die Werte der Haustiermerkmale in einem mehrdimensionalen Zeichenfolgenarray namens ourAnimals zu speichern. Sie werden mit der null Zeichen langen Zeichenfolge "" initialisiert. Die Deklaration des ourAnimals-Arrays befindet sich etwas weiter unten im Code.

    Die nächste Gruppe von Variablen (unter Kommentar Nr. 2) sind eine Mischung aus string und int Variablen, die verwendet werden, um Beispieldaten zu generieren, Benutzereingaben zu lesen und Beendigungskriterien für die Hauptprogrammschleife festzulegen. Beachten Sie die Codezeile string? readResult;. Sie verwenden das ? Zeichen, um einen normalerweise nicht nullablen Variablentyp (int, string, bool,...) mit Unterstützung für den nullfähigen Typ zu transformieren.

    Hinweis

    Beim Lesen der von Benutzenden mit der Console.ReadLine()-Methode eingegebenen Werte empfiehlt es sich, eine Nullwerte zulassende Zeichenfolge mit string? zu aktivieren, um zu vermeiden, dass der Codecompiler beim Erstellen des Projekts eine Warnung generiert.

    Die endgültige Variable (unter Kommentar #3) ist das zweidimensionale Zeichenfolgenarray mit dem Namen ourAnimals. Sie initialisierten die Anzahl der Zeilen, die von maxPets definiert wurden, auf 8. Die Anzahl der Merkmale, die Sie anfänglich speichern, ist sechs. Die sechs Merkmale entsprechen der Anzahl der Zeichenfolgenvariablen, die Sie im Beispielcode untersucht haben, aber die Anzahl der Merkmale muss erweitert werden, um ein Feld hinzuzufügen suggestedDonation.

  4. Scrollen Sie nach unten in der Datei Program.cs, um die for-Schleife zu untersuchen, die ein switch-Auswahlkonstrukt innerhalb ihres Codeblocks enthält.

    Das Codebeispiel ist eine gekürzte Version, um Speicherplatz zu sparen.

    // #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. Beachten Sie, dass die Schleife die formaxPets Variable verwendet, um eine obere Grenze für die Anzahl der Iterationen nach dem Kommentar #4 festzulegen.

  6. Beachten Sie außerdem, dass das switch Konstrukt den Code selektiv verzweigt, sodass Sie unterschiedliche Haustiereigenschaften für die Haustiere im Beispieldatensatz definieren können.

    Sie verwenden eine switch Anweisung, um unterschiedliche Werte für die ersten vier Iterationen der for Schleife zu definieren. Nach der Verarbeitung der Beispieldaten sind alle Merkmale leere Zeichenfolgen bzw. Zeichenfolgen mit einer Länge von null Zeichen.

    Die Werte der Variablen tierischer Merkmale werden dem Array "ourAnimals" am unteren Rand der for Schleife zugewiesen.

  7. Scrollen Sie zum Ende der Codedatei in Visual Studio Code. Untersuchen Sie den Code, der zum Anzeigen der Menüoptionen verwendet wird, und erfassen Sie die Eingabe der Auswahl des Benutzers.

    Sie sollten den folgenden Code beachten:

    // #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. Nehmen Sie sich einen Moment Zeit, um die beiden case-Anweisungen zu überprüfen.

    Es gibt nur zwei Menüoptionen, die mit einer eingeschränkten Version der Anwendung funktionieren. Die Startanwendung bietet nur die Funktionen, die zum Ausführen und Testen von Features-Prototypen erforderlich sind.

  9. Beachten Sie, dass auf die Codezeile readResult = Console.ReadLine(); eine Überprüfung auf einen Nullwert folgt.

    Der Code mit der Console.ReadLine() Methode hat den Wert auf die nullable Zeichenfolge readResult festgelegt, um zu vermeiden, dass der Codecompiler beim Erstellen des Projekts eine Warnung generiert.

Überprüfen Sie Ihre Arbeit

  1. Testen Sie die Startcode-Konsolen-App. Führen Sie an der TERMINAL-Eingabeaufforderung den Projektcode mit einem Befehl aus, indem Sie Folgendes eingeben: dotnet run.

    Hinweis

    Die TERMINAL-Eingabeaufforderung muss im Startordner geöffnet werden, und das TERMINAL sollte ähnlich aussehen wie ..\ArrayGuidedProject\starter>

    Wenn der Code ausgeführt wird, werden zwei Menüelemente angezeigt.

    • Geben Sie 1 ein, um die Ausgabe von „List all of our current pet information“ zu testen.
    • Eingabe: 2, um die Platzhaltermeldung "im Bau" zu testen
  2. Geben Sie 1 ein, gefolgt von der Eingabetaste, um "alle Haustiere anzuzeigen".

  3. Überprüfen Sie, ob alle Tierinformationen angezeigt werden.

    Wenn Sie die Daten aller Haustiere beobachten, sollte das letzte angezeigte Haustier mit der folgenden Ausgabe übereinstimmen:

    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. Drücken Sie die EINGABETASTE, um fortzufahren und zum Menü zurückzukehren.

  5. Geben Sie an der Menüaufforderung 2 ein und drücken Sie anschließend die EINGABETASTE.

    Diese Wahl ist ein Platzhalter für "Alle Hunde mit einer bestimmten charakteristischen" Funktionalität anzeigen.

  6. Überprüfen Sie, ob die UNDER CONSTRUCTION-Meldung für die Display all dogs with a specified characteristic-Auswahl angezeigt wird.

    Sie sollten dann die folgende Ausgabe sehen:

    UNDER CONSTRUCTION - please check back next month to see progress.
    Press the Enter key to continue.
    
  7. Geben Sie exit im App-Menü ein, um das Programm zu beenden, und schließen Sie dann das TERMINAL-Panel.

    Das Programm sollte beendet werden.

Jetzt können Sie mit der Entwicklung der neuen Features beginnen.