Sobes.tech
Junior

Як намунаи истифодаи делегатҳоро дар C# нишон диҳед.

sobes.tech AI

Ҷавоб аз AI

Delegates เป็นตัวชี้ตำแหน่งที่ปลอดภัยตามประเภทของเมธอด พวกเขาช่วยให้สามารถส่งผ่านเมธอดเป็นอาร์กิวเมนต์, กำหนดให้กับตัวแปร และเรียกใช้ผ่านตัวแปรเหล่านั้นได้ Delegates ถูกใช้อย่างแพร่หลายสำหรับสร้างเหตุการณ์, คอลแบ็ค และการเขียนโปรแกรมแบบอะซิงโครนัส

ตัวอย่างการใช้งาน delegate:

  1. ประกาศ delegate: เรากำหนดลายเซ็นของเมธอดที่ delegate สามารถชี้ไปได้

    public delegate int MyDelegate(int x, int y);
    
  2. นิยามเมธอด: เราสร้างเมธอดที่มีลายเซ็นตรงกับ delegate

    public class Calculator
    {
        public int Add(int a, int b)
        {
            return a + b;
        }
    
        public int Subtract(int a, int b)
        {
            return a - b;
        }
    }
    
  3. การใช้งาน delegate: เราสร้างอินสแตนซ์ของ delegate และกำหนดให้มันชี้ไปยังเมธอด จากนั้นเรียกเมธอดผ่าน delegate

    public class Program
    {
        public static void Main(string[] args)
        {
            Calculator calc = new Calculator();
    
            // สร้างอินสแตนซ์ของ delegate และกำหนดให้ชี้ไปยังเมธอด Add
            MyDelegate del = new MyDelegate(calc.Add);
    
            // เรียกเมธอด Add ผ่าน delegate
            int result1 = del(10, 5); // result1 = 15
            Console.WriteLine($"ผลลัพธ์ของการบวก: {result1}");
    
            // กำหนด delegate ให้ชี้ไปยังเมธอด Subtract
            del = calc.Subtract;
    
            // เรียกเมธอด Subtract ผ่าน delegate
            int result2 = del(10, 5); // result2 = 5
            Console.WriteLine($"ผลลัพธ์ของการลบ: {result2}");
        }
    }
    

ในตัวอย่างนี้, MyDelegate สามารถชี้ไปยังเมธอดใดก็ได้ที่รับอาร์กิวเมนต์สองตัวเป็นจำนวนเต็ม (int x, int y) และคืนค่ากลับเป็นจำนวนเต็ม (int) เราสร้างอินสแตนซ์ delegate สองตัว (del), กำหนดให้ชี้ไปยังเมธอด Add และ Subtract, และใช้ delegate เรียกเมธอดเหล่านี้