সি# এ মাল্টিকাস্ট ডেলিগেট হলো এমন ধরনের ডেলিগেট, যা একাধিক মেথড রেফারেন্স ধরে রাখতে পারে এবং ক্রমানুসারে সেগুলোকে কল করতে পারে। মাল্টিকাস্ট ডেলিগেটের সুবিধা হলো, একবারে একাধিক মেথডকে একই ডেলিগেটের সাথে যুক্ত করা যায় এবং একটি এক্সিকিউশন লাইন থেকে তাদের চালানো যায়।
একটি মাল্টিকাস্ট ডেলিগেট তৈরি করতে, সাধারণ ডেলিগেটের মতোই ডিক্লেয়ার করা হয়। মেথডগুলোকে ডেলিগেটের সাথে সংযুক্ত (+=) বা পৃথক (–=) করা যায়। এটি প্রায়শই void
টাইপের মেথডের জন্য ব্যবহৃত হয়, কারণ এর রিটার্ন ভ্যালু শুধুমাত্র সর্বশেষ মেথডের ফলাফল প্রদান করে।
নিচে একটি মাল্টিকাস্ট ডেলিগেট উদাহরণ দেওয়া হলো:
using System;
public class Program
{
// ডেলিগেট ডিক্লারেশন
public delegate void MyDelegate();
// প্রথম মেথড
public static void MethodOne()
{
Console.WriteLine("Method One Executed");
}
// দ্বিতীয় মেথড
public static void MethodTwo()
{
Console.WriteLine("Method Two Executed");
}
public static void Main()
{
// মাল্টিকাস্ট ডেলিগেট তৈরি এবং মেথড অ্যাসাইন করা
MyDelegate del = MethodOne;
del += MethodTwo; // দ্বিতীয় মেথড যুক্ত করা
// ডেলিগেট কল করা
del();
// দ্বিতীয় মেথড পৃথক করা
del -= MethodTwo;
Console.WriteLine("\nAfter removing MethodTwo:");
// পুনরায় ডেলিগেট কল করা
del();
}
}
১. MyDelegate
নামে একটি ডেলিগেট তৈরি করা হয়েছে, যা void
টাইপ এবং কোনো প্যারামিটার গ্রহণ করে না। ২. MethodOne
এবং MethodTwo
নামে দুটি মেথড ডিক্লেয়ার করা হয়েছে। ৩. del
নামে একটি ডেলিগেট ইনস্ট্যান্স তৈরি করা হয়েছে এবং প্রথমে MethodOne
মেথড অ্যাসাইন করা হয়েছে। ৪. del += MethodTwo;
লাইনে MethodTwo
মেথড যুক্ত করা হয়েছে, যা মাল্টিকাস্ট ডেলিগেট তৈরি করেছে। ৫. del();
কল করা হলে প্রথমে MethodOne
এবং তারপর MethodTwo
কল হবে। ৬. এরপর MethodTwo
মেথডকে পৃথক (-=
) করা হয়েছে, ফলে শুধুমাত্র MethodOne
কল হয়।
void
টাইপের জন্য উপযুক্ত।এভাবে মাল্টিকাস্ট ডেলিগেটের মাধ্যমে একাধিক মেথডকে একত্রে কল করার সুবিধা নেওয়া যায়।
আরও দেখুন...