C# Academy · บทเรียน

สำรวจตัวแทนและแลมบ์ดา

ทำความเข้าใจตัวแทนและนิพจน์แลมบ์ดาเพื่อเขียนโค้ดที่กระชับและยืดหยุ่น

บทเรียน 4 จาก 510 ขั้นตอน

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

การใช้ลัมบ์ดาร่วมกับดีลีเกต

สามารถกำหนดลัมบ์ดาให้กับดีลีเกตได้โดยตรง ตัวอย่าง:

สำรวจตัวแทนและแลมบ์ดา — ภาพประกอบ 1

ดีลีเกตคืออะไร

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# ซึ่งเป็นคุณสมบัติอันทรงพลังสำหรับการวิเคราะห์ชนิดข้อมูลขณะทำงาน มาเขียนโค้ดกันต่อไป!

สำรวจตัวแทนและแลมบ์ดา — ภาพประกอบ 10
เริ่มต้นได้ฟรี

เรียนรู้ 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. เจเนริกส์ใน C#
  2. Async และ Await: การทำงานกับโค้ดแบบไม่พร้อมกัน
  3. ทำความเข้าใจเธรดและงาน
  4. สำรวจตัวแทนและแลมบ์ดา
  5. ทำความเข้าใจการสะท้อนใน C#
← กลับไปที่ C# Academy