แบบฝึกหัด - ตรวจสอบรหัสเริ่มต้น
ในขั้นตอนแรกของกระบวนการพัฒนานี้ คุณตรวจทานรหัสที่ให้ไว้ในโฟลเดอร์โครงการเริ่มต้น
ตรวจทานเนื้อหาของไฟล์ Program.cs
ไฟล์ Program.cs ประกอบด้วยแอปพลิเคชันเวอร์ชันเบื้องต้นที่คุณกําลังทํางานอยู่ โค้ดมีคุณลักษณะในการสร้างและแสดงข้อมูลตัวอย่างสําหรับแอปพลิเคชัน และจะแสดงรายการของตัวเลือกเมนูที่กําหนดคุณลักษณะหลักของแอปพลิเคชัน
ตรวจสอบให้แน่ใจว่า คุณมีโฟลเดอร์ "GuidedProject" (Guided-project-Work-with-variable-data-CSharp-main) เปิดอยู่ใน Visual Studio Code
หน่วย "เตรียม" (หน่วยก่อนหน้าในโมดูลนี้) มีส่วนการตั้งค่าที่อธิบายถึงกระบวนการดาวน์โหลดจุดเริ่มต้นสําหรับโครงการที่แนะนําและเปิดโฟลเดอร์ Visual Studio Code หากจำเป็น ให้ย้อนกลับและทำตามคำแนะนำในการตั้งค่า
ในมุมมอง "EXPLORER" ให้ขยายโฟลเดอร์ "Starter" จากนั้นเลือก "Program.cs"
เมื่อคุณเลือกไฟล์ Program.cs เนื้อหาของไฟล์จะเปิดขึ้นในพื้นที่ตัวแก้ไขหลักทางด้านขวาของ EXPLORER
ถ้ามุมมอง EXPLORER ไม่เปิดขึ้น คุณสามารถเลือก/เปิดมุมมอง EXPLORER จากแถบกิจกรรมทางด้านซ้ายสุดของ Visual Studio Code EXPLORER คือไอคอนด้านบนสุดบนสุดบนแถบกิจกรรม
ใช้เวลาสักครู่เพื่อตรวจสอบการประกาศตัวแปรเริ่มต้นที่ด้านบนของไฟล์ 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เลื่อนไฟล์ 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; }โปรดสังเกตว่าการ
forวนรอบใช้maxPetsตัวแปรเพื่อสร้างขอบด้านบนของจํานวนการวนซ้ําต่อไปนี้ # 4นอกจากนี้ โปรดสังเกตว่า
switchโครงสร้างจะแยกสาขาโค้ดเพื่อให้คุณสามารถกําหนดลักษณะสัตว์เลี้ยงที่แตกต่างกันสําหรับสัตว์เลี้ยงในชุดข้อมูลตัวอย่างได้คุณใช้คําสั่ง
switchเพื่อกําหนดค่าที่แตกต่างกันสําหรับการวนซ้ําสี่ครั้งแรกของforรอบ หลังจากการประมวลผลข้อมูลตัวอย่าง ลักษณะทั้งหมดจะว่างเปล่าหรือสตริงที่มีความยาวเป็นศูนย์ค่าของตัวแปรลักษณะสัตว์จะถูกกําหนดให้กับอาร์เรย์ Animals ของเราที่ด้านล่างของ
forรอบเลื่อนไปที่ด้านล่างของไฟล์โค้ดใน 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");ใช้เวลาสักครู่เพื่อตรวจสอบสอง
caseคําสั่งมีเพียงสองตัวเลือกเมนูที่ทํางานกับแอปพลิเคชันเวอร์ชันจํากัด แอปพลิเคชันเริ่มต้นมีเฉพาะความสามารถที่จําเป็นสําหรับการเรียกใช้และการทดสอบต้นแบบของคุณลักษณะเท่านั้น
สังเกตว่าบรรทัดของโค้ดจะ
readResult = Console.ReadLine();ตามด้วยการตรวจสอบค่า nullโค้ดที่ใช้
Console.ReadLine()เมธอด มีค่าที่ตั้งค่าเป็นสตริงreadResultnullable เพื่อหลีกเลี่ยงคอมไพเลอร์โค้ดที่สร้างคําเตือนเมื่อคุณสร้างโครงการ
ตรวจสอบงานของคุณ
ทดสอบแอปคอนโซลโค้ดเริ่มต้นที่รุ่นพร้อมท์คําสั่ง TERMINAL และเรียกใช้รหัสโครงการของคุณด้วยคําสั่งเดียวโดยการป้อน:
dotnet runหมายเหตุ
พร้อมท์ TERMINAL ต้องเปิดในโฟลเดอร์เริ่มต้นและเทอร์มินัลควรมีลักษณะคล้ายกับ
..\ArrayGuidedProject\starter>เมื่อเรียกใช้โค้ด ระบบจะแสดงรายการเมนูสองรายการ
- Enter:
1เพื่อทดสอบเอาต์พุต "แสดงรายการข้อมูลสัตว์เลี้ยงปัจจุบันทั้งหมดของเรา" - Enter:
2เพื่อทดสอบข้อความตัวยึดตําแหน่ง "ภายใต้การก่อสร้าง"
- Enter:
Enter:
1ตามด้วยการกดปุ่ม "Enter" เพื่อ "แสดงสัตว์เลี้ยงทั้งหมด"ตรวจสอบว่าข้อมูลสัตว์เลี้ยงทั้งหมดแสดงขึ้น
เมื่อคุณสังเกตข้อมูลของสัตว์เลี้ยงทั้งหมด สัตว์เลี้ยงตัวสุดท้ายที่แสดงควรตรงกับผลลัพธ์ต่อไปนี้:
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กดปุ่ม Enter เพื่อดําเนินการต่อและกลับไปยังเมนู
ที่พร้อมท์เมนู ให้ใส่
2ตามด้วยการกดปุ่ม "Enter"ตัวเลือกนี้เป็นผู้ถือสําหรับฟังก์ชันการทํางาน "แสดงสุนัขทั้งหมดมีลักษณะเฉพาะ"
ตรวจสอบว่า
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.พิมพ์
exitที่เมนูแอป เพื่อจบโปรแกรมและปิดแผงเทอร์มินัลโปรแกรมควรจบการทํางาน
ในตอนนี้ คุณพร้อมที่จะเริ่มพัฒนาคุณลักษณะใหม่แล้ว