สำรวจตัวแทนและแลมบ์ดา
ทำความเข้าใจตัวแทนและนิพจน์แลมบ์ดาเพื่อเขียนโค้ดที่กระชับและยืดหยุ่น
สำรวจตัวแทนและแลมบ์ดา เป็นบทเรียน C# Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 5 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน C# Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส C# Academy มีบทเรียนทั้งหมด 5 บทเรียน
การใช้ลัมบ์ดาร่วมกับดีลีเกต
สามารถกำหนดลัมบ์ดาให้กับดีลีเกตได้โดยตรง ตัวอย่าง:

ดีลีเกตคืออะไร
delegate คือชนิดข้อมูลที่เก็บการอ้างอิงไปยังเมธอดซึ่งมีลายเซ็นเฉพาะ ดีลีเกตช่วยให้สามารถส่งเมธอดเป็นพารามิเตอร์หรือกำหนดค่าแบบไดนามิกได้
ตัวอย่าง: โดยทั่วไปจะใช้ดีลีเกตสำหรับการเรียกกลับและการจัดการเหตุการณ์
การกำหนดและใช้ดีลีเกต
คุณสามารถกำหนดดีลีเกตโดยใช้คีย์เวิร์ด delegate ตัวอย่าง:
ประเด็นสำคัญ: ดีลีเกตเป็นวิธีห่อหุ้มเมธอด
using System;
class Program {
// Define a delegate
public delegate void PrintDelegate(string message);
static void Main() {
PrintDelegate print = PrintMessage; // Assign method to delegate
print("Hello, Delegates!"); // Call the method via the delegate
}
static void PrintMessage(string message) {
Console.WriteLine(message);
}
}
นิพจน์ลัมบ์ดาคืออะไร
นิพจน์ลัมบ์ดา เป็นวิธีที่กระชับในการแทนเมธอดที่ไม่ระบุชื่อใน C# โดยใช้ไวยากรณ์ (parameters) => expression
ตัวอย่าง: (x, y) => x + y แทนเมธอดที่บวกตัวเลขสองจำนวน
เคล็ดลับ: มักใช้ลัมบ์ดาร่วมกับ LINQ และดีลีเกตเพื่อให้โค้ดกระชับและชัดเจน
นิพจน์ลัมบ์ดาร่วมกับดีลีเกต
การใช้ลัมบ์ดาร่วมกับดีลีเกต
สามารถกำหนดลัมบ์ดาให้กับดีลีเกตได้โดยตรง ตัวอย่าง:
ประเด็นสำคัญ: ลัมบ์ดาช่วยให้โค้ดกระชับและอ่านง่ายขึ้น
using System;
class Program {
public delegate int MathOperation(int x, int y);
static void Main() {
MathOperation add = (x, y) => x + y; // Lambda for addition
Console.WriteLine("Result: " + add(10, 20)); // Outputs: Result: 30
}
}
ดีลีเกตแบบหลายผู้รับ
ดีลีเกตหนึ่งรายการสามารถอ้างอิงเมธอดหลายรายการได้ เมธอดทั้งหมดจะถูกเรียกใช้งานตามลำดับ ตัวอย่าง:
using System;
class Program {
public delegate void Notify(string message);
static void Main() {
Notify notify = PrintMessage;
notify += LogMessage;
notify("Hello, Multicast Delegates!"); // Calls both methods
}
static void PrintMessage(string message) {
Console.WriteLine("Print: " + message);
}
static void LogMessage(string message) {
Console.WriteLine("Log: " + message);
}
}
แบบฝึกหัดท้าทาย
สร้างโปรแกรมที่ใช้ดีลีเกต StringOperation เพื่อดำเนินการกับสตริง เช่น การแปลงเป็นตัวพิมพ์ใหญ่และการย้อนกลับสตริง ตัวอย่าง:
using System;
class Program {
public delegate string StringOperation(string input);
static void Main() {
StringOperation operations = ToUpperCase;
operations += ReverseString;
string input = "Hello";
foreach (var operation in operations.GetInvocationList()) {
Console.WriteLine(((StringOperation)operation)(input));
}
}
static string ToUpperCase(string input) {
return input.ToUpper();
}
static string ReverseString(string input) {
char[] chars = input.ToCharArray();
Array.Reverse(chars);
return new string(chars);
}
}
แนวทางปฏิบัติที่ดีที่สุดสำหรับดีลีเกตและลัมบ์ดา
ต่อไปนี้คือแนวทางปฏิบัติที่ดีที่สุด:
- ใช้ดีลีเกตเพื่อใช้งานการเรียกกลับและการจัดการเหตุการณ์
- เลือกใช้นิพจน์ลัมบ์ดาเพื่อให้โค้ดกระชับและชัดเจน
- ใช้ลัมบ์ดาร่วมกับ LINQ เพื่อประมวลผลข้อมูลอย่างมีประสิทธิภาพ
- หลีกเลี่ยงลัมบ์ดาที่ซับซ้อนเกินไปเพื่อรักษาความอ่านง่าย
เคล็ดลับ: ใช้ชื่อพารามิเตอร์ที่สื่อความหมายในลัมบ์ดาเพื่อช่วยให้โค้ดชัดเจนยิ่งขึ้น
ยอดเยี่ยม!
ขอแสดงความยินดีด้วย! คุณได้เรียนรู้วิธีใช้ดีลีเกตและนิพจน์ลัมบ์ดาเพื่อเขียนโค้ดเชิงฟังก์ชันและโค้ดที่ขับเคลื่อนด้วยเหตุการณ์ใน C# แล้ว ในบทเรียนถัดไป เราจะสำรวจรีเฟลกชันใน C# ซึ่งเป็นคุณสมบัติอันทรงพลังสำหรับการวิเคราะห์ชนิดข้อมูลขณะทำงาน มาเขียนโค้ดกันต่อไป!

เรียนรู้ C# ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 93
- บทเรียน
- 346
คำถามที่พบบ่อย
บทเรียน “สำรวจตัวแทนและแลมบ์ดา” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “สำรวจตัวแทนและแลมบ์ดา” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส C# Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส C# Academy มีบทเรียนทั้งหมด 5 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “สำรวจตัวแทนและแลมบ์ดา”
ทำความเข้าใจตัวแทนและนิพจน์แลมบ์ดาเพื่อเขียนโค้ดที่กระชับและยืดหยุ่น คุณปฏิบัติ C# Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน C# Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน C# Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 5 บทเรียน
บทเรียน “สำรวจตัวแทนและแลมบ์ดา” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน C# Academy นี้ได้ไหม
ได้ บทเรียน C# Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- เจเนริกส์ใน C#
- Async และ Await: การทำงานกับโค้ดแบบไม่พร้อมกัน
- ทำความเข้าใจเธรดและงาน
- สำรวจตัวแทนและแลมบ์ดา
- ทำความเข้าใจการสะท้อนใน C#