C# มีโครงสร้างควบคุมการไหลแบบมาตรฐาน — เงื่อนไข (if, ), loops (, , ) และการแยกสาขา (, , ) — รวมถึงการปรับปรุงสมัยใหม่ เช่น switch expressions และ pattern matching ที่ทำให้โค้ดสั้นกระชับยิ่งขึ้น
switchforforeachwhilebreakcontinuereturnif (score >= 90)
grade = "A";
else if (score >= 80)
grade = "B";
else
grade = "F";
// ternary and null-coalescing
string status = age >= 18 ? "adult" : "minor";
string name = input ?? "default"; // ?? — use default if input is null
name ??= "fallback"; // ??= assign if null
// traditional switch
switch (day)
{
case "Sat":
case "Sun":
type = "weekend";
break; // break required (no fall-through)
default:
type = "weekday";
break;
}
// switch EXPRESSION (C# 8) — concise, returns a value, with pattern matching
string type = day switch
{
"Sat" or "Sun" => "weekend",
_ => "weekday", // _ = default
};
// pattern matching in switch
string describe = obj switch
{
int n when n > 0 => "positive int",
string s => $"string of length {s.Length}",
null => "null",
_ => "other",
};
switch expression สมัยใหม่นั้นกระชับ (ส่งคืนค่า ไม่มี break) และรองรับ pattern matching ที่มีประสิทธิภาพ (จับคู่ประเภท เงื่อนไข และอื่นๆ) — การปรับปรุงครั้งใหญ่เมื่อเทียบกับ switch แบบดั้งเดิมที่ยาวยืน
for (int i = 0; i < 10; i++) { }
foreach (var item in collection) { } // iterate any IEnumerable
while (condition) { }
do { } while (condition); // runs at least once
foreach (วนซ้ำ IEnumerable ใดๆ) เป็นวิธี loop ตามธรรมเนียมสำหรับคอลเล็กชัน
foreach (var item in items)
{
if (item.Skip) continue; // next iteration
if (item.Stop) break; // exit loop
}
return result; // exit method
ควบคุมการไหลเป็นกลไกพื้นฐานสำหรับการแสดงตรรกะในโปรแกรมทุกโปรแกรม ดังนั้นการทำความเข้าใจโครงสร้างของ C# จึงเป็นความรู้พื้นฐานในแต่ละวัน
แม้ว่าพื้นฐานจะเป็นมาตรฐาน แต่การปรับปรุง C# สมัยใหม่ก็คุ้มค่าที่จะรู้และใช้: switch expression (C# 8+) เป็นการปรับปรุงที่สำคัญเมื่อเทียบกับ switch แบบดั้งเดิม — กระชับ ส่งคืนค่า ไม่มีข้อบกพร่องจากการตกผ่าน (ไม่มี break ที่ลืม) และรองรับ pattern matching (จับคู่ประเภท เงื่อนไข ค่า และโครงสร้าง) ซึ่งทำให้ตรรกะเงื่อนไขที่ซับซ้อนสะอาดกว่าสายโซ่ if-else ที่ซ้อนกัน
null-coalescing operators (??, ??=) มีการจัดการ null ที่สะอาด และ foreach เป็นวิธีตามธรรมเนียมในการวนซ้ำคอลเล็กชัน
การทำความรู้จักกับโครงสร้างเหล่านี้และการเลือก forms ที่ทันสมัยและมีการแสดงออกมากขึ้น (switch expressions ที่มี pattern matching แทน switch statements ที่ยาวยืน null-coalescing สำหรับค่าเริ่มต้น) เป็นความรู้ประจำวันสำหรับการเขียน C# ที่สะอาดและตามธรรมเนียม
switch expression และ pattern matching โดยเฉพาะอย่างยิ่งสะท้อนถึงวิวัฒนาการของ C# สมัยใหม่ไปสู่โค้ดที่ใช้งานได้มากขึ้น กระชับขึ้น ทำให้สิ่งเหล่านี้เป็นสิ่งสำคัญในการเข้าใจทั้งสำหรับการเขียนโค้ดที่ดีขึ้นและการอ่าน codebase ของ C# ในปัจจุบันที่ใช้ฟีเจอร์เหล่านี้อย่างแพร่หลาย
คลังคำถามสัมภาษณ์งาน IT พร้อมคำตอบโดยละเอียด — ตั้งแต่ระดับ Junior ถึง Senior
บริจาค