কম্পিউটার টিউটোরিয়াল

C#-এ ডেলিগেট (Delegate) কীভাবে ঘোষণা ও ইনস্ট্যানশিয়েট করবেন?

C# ডেলিগেট C বা C++-এ ফাংশন পয়েন্টারের মতো। একটি ডেলিগেট হলো একটি রেফারেন্স টাইপ ভেরিয়েবল যা একটি মেথডের রেফারেন্স ধারণ করে। রান-টাইমে এই রেফারেন্স পরিবর্তন করা যায়।

ডেলিগেট ঘোষণার সিনট্যাক্স

delegate <return type> <delegate-name> <parameter list>

ডেলিগেট ইনস্ট্যানশিয়েট করা

একবার ডেলিগেট টাইপ ঘোষণা হলে, new কীওয়ার্ড দিয়ে একটি ডেলিগেট অবজেক্ট তৈরি করতে হয় এবং একটি নির্দিষ্ট মেথডের সাথে যুক্ত করতে হয়। ডেলিগেট তৈরি করার সময়, new এক্সপ্রেশনে পাস করা আর্গুমেন্ট মেথড কলের মতো লেখা হয়, কিন্তু মেথডের আর্গুমেন্ট ছাড়া।

public delegate void printString(string s); 
... 
printString ps1 = new printString(WriteToScreen); 
printString ps2 = new printString(WriteToFile);

সম্পূর্ণ উদাহরণ

using System; 
delegate int NumberChanger(int n); 
namespace DelegateAppl { 
    class TestDelegate { 
        static int num = 10; 
        public static int AddNum(int p) { 
            num += p; 
            return num; 
        } 
        public static int MultNum(int q) { 
            num *= q; 
            return num; 
        } 
        public static int getNum() { return num; } 
        static void Main(string[] args) { 
            NumberChanger nc1 = new NumberChanger(AddNum); 
            NumberChanger nc2 = new NumberChanger(MultNum); 
            nc1(25); 
            Console.WriteLine("Value of Num: {0}", getNum()); 
            nc2(5); 
            Console.WriteLine("Value of Num: {0}", getNum()); 
            Console.ReadKey(); 
        } 
    } 
}

আউটপুট

Value of Num: 35
Value of Num: 175
  1. Num Lock: এটি কী এবং কীভাবে কাজ করে

  2. C#-এ অ্যারে কীভাবে ঘোষণা করবেন?

  3. জাভা ৯-এ JShell-এ ক্লাস এবং ইন্টারফেস কীভাবে ডিক্লেয়ার করবেন?

  4. পাইথন ভেরিয়েবল মাস্টার করুন: ডিক্লেয়ার ও ব্যবহার করার প্রফেশনাল গাইড