แบบฝึกหัด - ตรวจสอบรหัสเริ่มต้น

เสร็จสมบูรณ์เมื่อ

ในขั้นตอนแรกของกระบวนการพัฒนานี้ คุณตรวจทานรหัสที่ให้ไว้ในโฟลเดอร์โครงการเริ่มต้น

ตรวจทานเนื้อหาของไฟล์ Program.cs

ไฟล์ Program.cs ประกอบด้วยแอปพลิเคชันเวอร์ชันเบื้องต้นที่คุณกําลังทํางานอยู่ โค้ดมีคุณลักษณะในการสร้างและแสดงข้อมูลตัวอย่างสําหรับแอปพลิเคชัน และจะแสดงรายการของตัวเลือกเมนูที่กําหนดคุณลักษณะหลักของแอปพลิเคชัน

  1. ตรวจสอบให้แน่ใจว่า คุณมีโฟลเดอร์ "GuidedProject" (Guided-project-Work-with-variable-data-CSharp-main) เปิดอยู่ใน Visual Studio Code

    หน่วย "เตรียม" (หน่วยก่อนหน้าในโมดูลนี้) มีส่วนการตั้งค่าที่อธิบายถึงกระบวนการดาวน์โหลดจุดเริ่มต้นสําหรับโครงการที่แนะนําและเปิดโฟลเดอร์ Visual Studio Code หากจำเป็น ให้ย้อนกลับและทำตามคำแนะนำในการตั้งค่า

  2. ในมุมมอง "EXPLORER" ให้ขยายโฟลเดอร์ "Starter" จากนั้นเลือก "Program.cs"

    เมื่อคุณเลือกไฟล์ Program.cs เนื้อหาของไฟล์จะเปิดขึ้นในพื้นที่ตัวแก้ไขหลักทางด้านขวาของ EXPLORER

    ถ้ามุมมอง EXPLORER ไม่เปิดขึ้น คุณสามารถเลือก/เปิดมุมมอง EXPLORER จากแถบกิจกรรมทางด้านซ้ายสุดของ Visual Studio Code EXPLORER คือไอคอนด้านบนสุดบนสุดบนแถบกิจกรรม

  3. ใช้เวลาสักครู่เพื่อตรวจสอบการประกาศตัวแปรเริ่มต้นที่ด้านบนของไฟล์ 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];
    

    ก่อนอื่น คุณจะเห็นข้อคิดเห็น (ความคิดเห็น #1) ตามด้วยรายการของตัวแปร ตัวแปร animalSpecies เหล่านี้ ผ่าน animalNicknameที่ใช้เพื่อเก็บค่าของลักษณะสัตว์เลี้ยงภายในอาร์เรย์สตริงหลายมิติที่ชื่อว่า ourAnimalsและถูกเตรียมใช้งานเพื่อให้มีสตริง ""ที่มีความยาวเป็นศูนย์ ourAnimalsการประกาศอาร์เรย์จะอยู่ลึกลงไปอีกเล็กน้อยในรหัส

    กลุ่มถัดไปของตัวแปร (ภายใต้ข้อคิดเห็น #2) คือการผสมผสานของ string และ int ตัวแปรที่ใช้ในการสร้างข้อมูลตัวอย่าง อ่านข้อมูลป้อนเข้าของผู้ใช้ และสร้างเกณฑ์การออกจากโปรแกรมหลัก โปรดสังเกตบรรทัด string? readResult;โค้ด คุณใช้ ? อักขระเพื่อแปลงประเภทตัวแปรที่ไม่สามารถเป็นค่าว่างได้ตามปกติ (int, string, bool,...) ที่มีการสนับสนุนสําหรับชนิด nullable

    หมายเหตุ

    เมื่ออ่านค่าที่ผู้ใช้ป้อนด้วย Console.ReadLine() วิธีการ จะดีที่สุดที่จะเปิดใช้งานสตริงชนิด nullable โดยใช้ string? เพื่อหลีกเลี่ยงคอมไพเลอร์โค้ดที่สร้างคําเตือนเมื่อคุณสร้างโครงการ

    ตัวแปรสุดท้าย (ภายใต้ข้อคิดเห็น #3) คืออาร์เรย์สตริงสองมิติที่ชื่อว่าourAnimals คุณได้เตรียมใช้งานจํานวนแถวที่กําหนดโดย maxPets เป็น 8 จํานวนของคุณลักษณะที่คุณกําลังจัดเก็บในตอนแรกคือ 6 คุณลักษณะหกประการตรงกับจํานวนของตัวแปรสตริงที่คุณตรวจสอบในรหัสตัวอย่าง แต่จํานวนของลักษณะจําเป็นต้องขยายเพื่อเพิ่มเขตข้อมูลสําหรับsuggestedDonation

  4. เลื่อนไฟล์ Program.cs ลงเพื่อตรวจสอบการ for วนรอบที่มี switch การสร้างการเลือกภายในบล็อกรหัส

    ตัวอย่างโค้ดเป็นเวอร์ชันที่สั้นลงเพื่อประหยัดเนื้อที่

    // #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. โปรดสังเกตว่าการ for วนรอบใช้ maxPets ตัวแปรเพื่อสร้างขอบด้านบนของจํานวนการวนซ้ําต่อไปนี้ # 4

  6. นอกจากนี้ โปรดสังเกตว่า switch โครงสร้างจะแยกสาขาโค้ดเพื่อให้คุณสามารถกําหนดลักษณะสัตว์เลี้ยงที่แตกต่างกันสําหรับสัตว์เลี้ยงในชุดข้อมูลตัวอย่างได้

    คุณใช้คําสั่ง switch เพื่อกําหนดค่าที่แตกต่างกันสําหรับการวนซ้ําสี่ครั้งแรกของ for รอบ หลังจากการประมวลผลข้อมูลตัวอย่าง ลักษณะทั้งหมดจะว่างเปล่าหรือสตริงที่มีความยาวเป็นศูนย์

    ค่าของตัวแปรลักษณะสัตว์จะถูกกําหนดให้กับอาร์เรย์ Animals ของเราที่ด้านล่างของ for รอบ

  7. เลื่อนไปที่ด้านล่างของไฟล์โค้ดใน Visual Studio Code ตรวจสอบรหัสที่ใช้เพื่อแสดงตัวเลือกเมนูและจับภาพข้อมูลป้อนเข้าของการเลือกของผู้ใช้

    คุณควรสังเกตโค้ดต่อไปนี้:

    // #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. ใช้เวลาสักครู่เพื่อตรวจสอบสอง case คําสั่ง

    มีเพียงสองตัวเลือกเมนูที่ทํางานกับแอปพลิเคชันเวอร์ชันจํากัด แอปพลิเคชันเริ่มต้นมีเฉพาะความสามารถที่จําเป็นสําหรับการเรียกใช้และการทดสอบต้นแบบของคุณลักษณะเท่านั้น

  9. สังเกตว่าบรรทัดของโค้ดจะ readResult = Console.ReadLine(); ตามด้วยการตรวจสอบค่า null

    โค้ดที่ใช้ Console.ReadLine() เมธอด มีค่าที่ตั้งค่าเป็นสตริง readResult nullable เพื่อหลีกเลี่ยงคอมไพเลอร์โค้ดที่สร้างคําเตือนเมื่อคุณสร้างโครงการ

ตรวจสอบงานของคุณ

  1. ทดสอบแอปคอนโซลโค้ดเริ่มต้นที่รุ่นพร้อมท์คําสั่ง TERMINAL และเรียกใช้รหัสโครงการของคุณด้วยคําสั่งเดียวโดยการป้อน: dotnet run

    หมายเหตุ

    พร้อมท์ TERMINAL ต้องเปิดในโฟลเดอร์เริ่มต้นและเทอร์มินัลควรมีลักษณะคล้ายกับ ..\ArrayGuidedProject\starter>

    เมื่อเรียกใช้โค้ด ระบบจะแสดงรายการเมนูสองรายการ

    • Enter: 1เพื่อทดสอบเอาต์พุต "แสดงรายการข้อมูลสัตว์เลี้ยงปัจจุบันทั้งหมดของเรา"
    • Enter: 2เพื่อทดสอบข้อความตัวยึดตําแหน่ง "ภายใต้การก่อสร้าง"
  2. Enter: 1ตามด้วยการกดปุ่ม "Enter" เพื่อ "แสดงสัตว์เลี้ยงทั้งหมด"

  3. ตรวจสอบว่าข้อมูลสัตว์เลี้ยงทั้งหมดแสดงขึ้น

    เมื่อคุณสังเกตข้อมูลของสัตว์เลี้ยงทั้งหมด สัตว์เลี้ยงตัวสุดท้ายที่แสดงควรตรงกับผลลัพธ์ต่อไปนี้:

    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. กดปุ่ม Enter เพื่อดําเนินการต่อและกลับไปยังเมนู

  5. ที่พร้อมท์เมนู ให้ใส่ 2 ตามด้วยการกดปุ่ม "Enter"

    ตัวเลือกนี้เป็นผู้ถือสําหรับฟังก์ชันการทํางาน "แสดงสุนัขทั้งหมดมีลักษณะเฉพาะ"

  6. ตรวจสอบว่า UNDER CONSTRUCTION ข้อความแสดงขึ้นมาสําหรับ Display all dogs with a specified characteristic การเลือก

    คุณควรสังเกตผลลัพธ์ต่อไปนี้:

    UNDER CONSTRUCTION - please check back next month to see progress.
    Press the Enter key to continue.
    
  7. พิมพ์ exitที่เมนูแอป เพื่อจบโปรแกรมและปิดแผงเทอร์มินัล

    โปรแกรมควรจบการทํางาน

ในตอนนี้ คุณพร้อมที่จะเริ่มพัฒนาคุณลักษณะใหม่แล้ว