Skill Development

ডেলিগেট এবং ইভেন্ট

সি# এ ডেলিগেট এবং ইভেন্ট খুবই গুরুত্বপূর্ণ বৈশিষ্ট্য, যা প্রোগ্রামে ফাংশন পাস করা এবং নির্দিষ্ট ঘটনাগুলোর প্রতিক্রিয়া জানানো সহজ করে। ডেলিগেট ফাংশন পয়েন্টার হিসেবে কাজ করে, আর ইভেন্ট বিশেষ পরিস্থিতি বা পরিবর্তনের প্রতিক্রিয়ায় নির্দিষ্ট ফাংশন চালাতে সাহায্য করে। নিচে ডেলিগেট এবং ইভেন্ট নিয়ে বিস্তারিত আলোচনা করা হলো।


ডেলিগেট (Delegate)

ডেলিগেট হলো এমন এক ধরনের ডেটা টাইপ যা একটি ফাংশনের রেফারেন্স ধরে রাখতে সক্ষম। ডেলিগেটের মাধ্যমে প্রোগ্রামের একটি অংশ অন্য অংশের জন্য ফাংশন ডিফাইন করতে পারে এবং প্রয়োজনে সেটি চালাতে পারে।

ডেলিগেট ডিক্লারেশন

একটি ডেলিগেটকে ডিক্লার করার জন্য delegate কীওয়ার্ড ব্যবহার করা হয় এবং এটি সাধারণত মেথডের স্বাক্ষরের (signature) উপর ভিত্তি করে থাকে। নিচে একটি সাধারণ ডেলিগেটের ডিক্লারেশন দেওয়া হলো:

public delegate void MyDelegate(string message);

এখানে MyDelegate নামক একটি ডেলিগেট আছে, যা void টাইপের এবং একটি string প্যারামিটার গ্রহণ করে।

ডেলিগেট ব্যবহার উদাহরণ

using System;

public class Program
{
    // ডেলিগেট ডিক্লারেশন
    public delegate void MyDelegate(string message);

    // একটি মেথড যা ডেলিগেট টাইপ মিলে
    public static void PrintMessage(string message)
    {
        Console.WriteLine(message);
    }

    public static void Main()
    {
        // ডেলিগেট ইনস্ট্যান্স তৈরি এবং মেথড এসাইন করা
        MyDelegate del = PrintMessage;
        
        // ডেলিগেট কল করা
        del("Hello from delegate!");
    }
}

ব্যাখ্যা

১. MyDelegate নামে একটি ডেলিগেট ডিক্লেয়ার করা হয়েছে, যা void টাইপ এবং একটি string প্যারামিটার গ্রহণ করে। ২. PrintMessage নামে একটি মেথড তৈরি করা হয়েছে, যা MyDelegate এর স্বাক্ষর অনুযায়ী কাজ করে। ৩. del নামক একটি ডেলিগেট ইনস্ট্যান্স তৈরি করা হয়েছে এবং PrintMessage মেথড অ্যাসাইন করা হয়েছে। ৪. ডেলিগেট কল করার মাধ্যমে PrintMessage মেথডটি কল করা হয়েছে।

মাল্টিকাস্ট ডেলিগেট

ডেলিগেটকে মাল্টিকাস্ট হিসেবে ব্যবহার করা যায়, যেখানে একাধিক মেথড একটিমাত্র ডেলিগেটের মাধ্যমে কল করা যায়।

MyDelegate del = PrintMessage;
del += AnotherMethod; // দ্বিতীয় মেথড যোগ করা
del("Hello multicast delegate!");

ইভেন্ট (Event)

ইভেন্ট হলো বিশেষ ধরনের ডেলিগেট যা নির্দিষ্ট ঘটনাগুলির (event) প্রতিক্রিয়া জানাতে ব্যবহৃত হয়। ইভেন্টগুলো সাধারণত একটি ক্লাসের ভেতরে ডিক্লেয়ার করা হয় এবং সেই ক্লাসের বাইরে থেকে সাবস্ক্রাইব বা আনসাবস্ক্রাইব করা যায়। ইভেন্টের মাধ্যমে প্রোগ্রামের কোনো নির্দিষ্ট অবস্থায় কিছু কোড ট্রিগার করানো যায়।

ইভেন্ট ডিক্লারেশন

ইভেন্ট ডিক্লেয়ার করতে event কীওয়ার্ড ব্যবহার করা হয়।

public class Publisher
{
    // ইভেন্ট ডিক্লেয়ারেশন
    public event MyDelegate OnMessageReceived;

    public void SendMessage(string message)
    {
        if (OnMessageReceived != null)
        {
            OnMessageReceived(message); // ইভেন্ট ট্রিগার করা
        }
    }
}

ইভেন্ট সাবস্ক্রাইব এবং ব্যবহার

ইভেন্টের ব্যবহার বোঝাতে Publisher এবং Subscriber নামে দুটি ক্লাসের উদাহরণ দেওয়া হলো।

using System;

public class Publisher
{
    // ডেলিগেট ডিক্লেয়ারেশন
    public delegate void MyDelegate(string message);

    // ইভেন্ট ডিক্লেয়ারেশন
    public event MyDelegate OnMessageReceived;

    public void SendMessage(string message)
    {
        if (OnMessageReceived != null)
        {
            OnMessageReceived(message); // ইভেন্ট ট্রিগার করা
        }
    }
}

public class Subscriber
{
    public void MessageHandler(string message)
    {
        Console.WriteLine("Received message: " + message);
    }
}

public class Program
{
    public static void Main()
    {
        Publisher publisher = new Publisher();
        Subscriber subscriber = new Subscriber();

        // ইভেন্ট সাবস্ক্রাইব করা
        publisher.OnMessageReceived += subscriber.MessageHandler;

        // ইভেন্ট ট্রিগার করা
        publisher.SendMessage("Hello, this is an event-driven message!");
    }
}

ব্যাখ্যা

১. Publisher ক্লাসে একটি ইভেন্ট OnMessageReceived ডিক্লেয়ার করা হয়েছে, যা ডেলিগেট MyDelegate ব্যবহার করে। ২. SendMessage মেথডের মাধ্যমে OnMessageReceived ইভেন্টটি ট্রিগার করা হয়েছে। ৩. Subscriber ক্লাসে MessageHandler নামে একটি মেথড আছে যা ইভেন্টটি হ্যান্ডল করে। ৪. Main মেথডে, publisher.OnMessageReceived += subscriber.MessageHandler; এই লাইনটি ইভেন্ট সাবস্ক্রাইব করে। ৫. ইভেন্ট ট্রিগার হলে MessageHandler মেথডটি চালানো হয় এবং মেসেজটি প্রিন্ট করে।


ইভেন্টের সুবিধা

  • ডিসেন্ট্রালাইজড কোড: ইভেন্ট ব্যবহার করে সহজেই কোডকে ডিসেন্ট্রালাইজড করা যায়, অর্থাৎ একটি ক্লাসের অ্যাকশন অন্য ক্লাস দ্বারা হ্যান্ডল করা যায়।
  • এফিশিয়েন্ট নোটিফিকেশন: প্রোগ্রামের মধ্যে নির্দিষ্ট ঘটনাগুলো ঘটলে সাবস্ক্রাইবারকে তা নোটিফাই করা যায়।
  • কমপ্লেক্সিটির হ্রাস: ইভেন্টের মাধ্যমে একাধিক ফাংশনকে সাবস্ক্রাইব করে সহজেই বিভিন্ন রেসপন্স তৈরি করা যায়।

সংক্ষেপে

  1. ডেলিগেট: একটি ফাংশন রেফারেন্স ধরে রাখে, যা কোডে একটি মেথডকে নির্দেশ করে।
  2. ইভেন্ট: ডেলিগেটের ওপর ভিত্তি করে তৈরি, যা কোনো বিশেষ ঘটনার (event) প্রতিক্রিয়ায় কাজ করে।

ডেলিগেট এবং ইভেন্ট ব্যবহার করে সি# এ কার্যকরী এবং ইভেন্ট-ড্রাইভেন প্রোগ্রাম তৈরি করা যায়, যা প্রোগ্রামের মডুলারিটি ও কার্যকারিতা বাড়ায়।

 

 

Content added || updated By

ডেলিগেট কী এবং এর ব্যবহার

ডেলিগেট হলো সি#-এর একটি বিশেষ ধরনের রেফারেন্স টাইপ, যা মেথডকে রেফারেন্স করতে ব্যবহৃত হয়। সহজ ভাষায়, ডেলিগেট হচ্ছে এক ধরনের পয়েন্টার যা নির্দিষ্ট সিগনেচারের মেথডকে নির্দেশ করে। এটি ফাংশন পয়েন্টারের মতো কাজ করে এবং প্রোগ্রামে ফাংশনকে প্যারামিটার হিসাবে পাঠাতে সাহায্য করে।

ডেলিগেট ব্যবহার করে, আপনি একাধিক মেথডকে একটি একক রেফারেন্সের অধীনে সংযুক্ত করতে পারেন। এটি প্রায়ই ইভেন্ট হ্যান্ডলিং, কাস্টম কনফিগারেশন এবং অ্যাসিঙ্ক্রোনাস মেথড কলের জন্য ব্যবহৃত হয়।

ডেলিগেট তৈরি করার নিয়ম

ডেলিগেট ঘোষণার জন্য নিচের নিয়মটি মেনে চলতে হয়:

delegate returnType DelegateName(parameterList);
  • returnType: মেথডের রিটার্ন টাইপ।
  • DelegateName: ডেলিগেটের নাম।
  • parameterList: মেথডে পাঠানো প্যারামিটারগুলোর তালিকা।

উদাহরণ ১: ডেলিগেটের মৌলিক ব্যবহার

নিচে একটি সাধারণ উদাহরণ দেওয়া হলো যেখানে একটি ডেলিগেট ঘোষণা করা হয়েছে এবং একটি মেথডকে পয়েন্ট করছে।

using System;

// ডেলিগেট ঘোষণা
public delegate void DisplayMessage(string message);

public class Program
{
    // একটি মেথড যা ডেলিগেটের সাথে মিলিত
    public static void ShowMessage(string message)
    {
        Console.WriteLine(message);
    }

    public static void Main()
    {
        // ডেলিগেট ইনস্ট্যান্স তৈরি করা এবং মেথড অ্যাসাইন করা
        DisplayMessage display = ShowMessage;

        // ডেলিগেট কল করা
        display("Hello, this is a delegate example!");
    }
}

উপরে DisplayMessage নামে একটি ডেলিগেট তৈরি করা হয়েছে, যা string প্যারামিটার গ্রহণ করে এবং কিছু রিটার্ন না করে। এই ডেলিগেটকে ShowMessage মেথডের সাথে অ্যাসাইন করা হয়েছে এবং পরে display ডেলিগেট কল করা হয়েছে, যা ShowMessage মেথডটিকে কল করে।

ডেলিগেট কেন প্রয়োজন?

ডেলিগেট ব্যবহারের মাধ্যমে প্রোগ্রামে কিছু গুরুত্বপূর্ণ সুবিধা পাওয়া যায়:

  1. ইভেন্ট হ্যান্ডলিং: ইভেন্টের জন্য ডেলিগেট অত্যন্ত গুরুত্বপূর্ণ, কারণ ইভেন্টগুলিতে একাধিক মেথড যুক্ত বা বিচ্ছিন্ন করা যায়।
  2. কাস্টম কনফিগারেশন: ডেলিগেট ব্যবহারের মাধ্যমে একটি নির্দিষ্ট কার্যক্রমকে সহজেই পরিবর্তন করা যায়, ফলে প্রোগ্রামে আরও ফ্লেক্সিবিলিটি পাওয়া যায়।
  3. মেথড পাস করা: ডেলিগেট ব্যবহার করে একটি মেথডকে অন্য মেথডে প্যারামিটার হিসেবে পাঠানো যায়।

উদাহরণ ২: ডেলিগেট ব্যবহার করে ক্যালকুলেটর তৈরি করা

নিচে Calculator নামের একটি ক্লাসে কয়েকটি অ্যারিথমেটিক অপারেশন করা হয়েছে এবং প্রতিটি অপারেশন ডেলিগেট ব্যবহার করে কল করা হয়েছে।

using System;

// ডেলিগেট ঘোষণা
public delegate int Calculate(int a, int b);

public class Calculator
{
    public int Add(int a, int b)
    {
        return a + b;
    }

    public int Subtract(int a, int b)
    {
        return a - b;
    }
}

public class Program
{
    public static void Main()
    {
        Calculator calc = new Calculator();

        // ডেলিগেটের ইনস্ট্যান্স তৈরি এবং মেথড অ্যাসাইন
        Calculate addOperation = calc.Add;
        Calculate subtractOperation = calc.Subtract;

        // ডেলিগেট কল করা
        Console.WriteLine("Addition: " + addOperation(10, 5));
        Console.WriteLine("Subtraction: " + subtractOperation(10, 5));
    }
}

উপরের উদাহরণে, Calculate নামে একটি ডেলিগেট তৈরি করা হয়েছে, যা দুটি int প্যারামিটার গ্রহণ করে এবং একটি int রিটার্ন করে। এই ডেলিগেটকে Add এবং Subtract মেথডের সাথে যুক্ত করা হয়েছে।

মাল্টিকাস্ট ডেলিগেট

ডেলিগেটগুলোর একটি বৈশিষ্ট্য হলো মাল্টিকাস্ট ডেলিগেট। অর্থাৎ, একটি ডেলিগেটে একাধিক মেথড অ্যাসাইন করা সম্ভব এবং এগুলো ক্রমানুসারে কল করা হবে।

using System;

// ডেলিগেট ঘোষণা
public delegate void Notify();

public class Notifications
{
    public void EmailNotification()
    {
        Console.WriteLine("Sending email notification...");
    }

    public void SMSNotification()
    {
        Console.WriteLine("Sending SMS notification...");
    }
}

public class Program
{
    public static void Main()
    {
        Notifications notifications = new Notifications();

        // মাল্টিকাস্ট ডেলিগেট
        Notify notifyAll = notifications.EmailNotification;
        notifyAll += notifications.SMSNotification;

        // ডেলিগেট কল করা
        notifyAll();
    }
}

এখানে, Notify ডেলিগেট EmailNotification এবং SMSNotification মেথড দুটি পয়েন্ট করছে। notifyAll ডেলিগেট কল করলে উভয় মেথড ক্রমানুসারে কল হবে।

ডেলিগেটের সংক্ষিপ্ত রূপ: Func, Action, এবং Predicate

সি# এ ডেলিগেটের কিছু প্রি-ডিফাইনড ফর্ম রয়েছে:

Func: এটি একটি ডেলিগেট যা এক বা একাধিক ইনপুট প্যারামিটার গ্রহণ করে এবং একটি আউটপুট প্রদান করে।

Func<int, int, int> add = (a, b) => a + b;
Console.WriteLine(add(10, 5)); // আউটপুট: 15

Action: এটি একটি ডেলিগেট যা এক বা একাধিক ইনপুট প্যারামিটার গ্রহণ করে, কিন্তু কিছু রিটার্ন করে না।

Action<string> greet = name => Console.WriteLine("Hello, " + name);
greet("John"); // আউটপুট: Hello, John

Predicate: এটি একটি ডেলিগেট যা একটি ইনপুট প্যারামিটার গ্রহণ করে এবং একটি bool রিটার্ন করে।

Predicate<int> isEven = x => x % 2 == 0;
Console.WriteLine(isEven(4)); // আউটপুট: True

সংক্ষেপে

ডেলিগেট সি# প্রোগ্রামিংয়ে মেথডের রেফারেন্স ধরে রাখা, মেথড পাস করা, এবং মাল্টিকাস্টিংয়ের জন্য ব্যবহার করা হয়। এটি ইভেন্ট হ্যান্ডলিং, কাস্টম কনফিগারেশন এবং বিভিন্ন ফাংশনাল প্রোগ্রামিং কার্যক্রমে ব্যবহারযোগ্য।

Content added By

মাল্টিকাস্ট ডেলিগেট

সি# এ মাল্টিকাস্ট ডেলিগেট হলো এমন ধরনের ডেলিগেট, যা একাধিক মেথড রেফারেন্স ধরে রাখতে পারে এবং ক্রমানুসারে সেগুলোকে কল করতে পারে। মাল্টিকাস্ট ডেলিগেটের সুবিধা হলো, একবারে একাধিক মেথডকে একই ডেলিগেটের সাথে যুক্ত করা যায় এবং একটি এক্সিকিউশন লাইন থেকে তাদের চালানো যায়।

মাল্টিকাস্ট ডেলিগেট তৈরি করা

একটি মাল্টিকাস্ট ডেলিগেট তৈরি করতে, সাধারণ ডেলিগেটের মতোই ডিক্লেয়ার করা হয়। মেথডগুলোকে ডেলিগেটের সাথে সংযুক্ত (+=) বা পৃথক (–=) করা যায়। এটি প্রায়শই 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 কল হয়।

মাল্টিকাস্ট ডেলিগেটের সুবিধা

  1. একাধিক মেথড কল করা সহজ: একাধিক মেথডকে একত্রে এক্সিকিউট করা যায়।
  2. সুবিধাজনক কোডিং: কোডের মডুলারিটি বৃদ্ধি পায়।
  3. মেথড পৃথক করার সুবিধা: সহজেই মেথডগুলোকে যুক্ত বা পৃথক করা যায়।

গুরুত্বপূর্ণ কিছু পয়েন্ট

  • মাল্টিকাস্ট ডেলিগেট শুধুমাত্র শেষ মেথডের রিটার্ন ভ্যালু প্রদান করে। তাই এটি void টাইপের জন্য উপযুক্ত।
  • মাল্টিকাস্ট ডেলিগেটের মাধ্যমে রেফারেন্স করা মেথডগুলো ক্রমানুসারে এক্সিকিউট হয়।

এভাবে মাল্টিকাস্ট ডেলিগেটের মাধ্যমে একাধিক মেথডকে একত্রে কল করার সুবিধা নেওয়া যায়।

Content added By

ইভেন্ট এবং ইভেন্ট হ্যান্ডলার

সি# এ ইভেন্ট এবং ইভেন্ট হ্যান্ডলার প্রোগ্রামিংয়ের অন্যতম গুরুত্বপূর্ণ ধারণা, যা বিশেষ করে ইভেন্ট-ড্রিভেন প্রোগ্রামিংয়ে ব্যবহার করা হয়। ইভেন্ট হলো একটি নোটিফিকেশন বা বার্তা যা নির্দিষ্ট কোনো কাজের সময় পাঠানো হয়, এবং ইভেন্ট হ্যান্ডলার হলো সেই মেথড, যা ইভেন্ট ট্রিগার হলে এক্সিকিউট হয়।

ইভেন্ট কী?

ইভেন্ট হলো একটি ঘোষণা যা বলে যে একটি নির্দিষ্ট অ্যাকশন বা কাজ ঘটেছে। উদাহরণস্বরূপ, একটি বাটন ক্লিক করলে ইভেন্ট তৈরি হয় এবং এটি ইভেন্ট হ্যান্ডলারকে জানিয়ে দেয় যে একটি ক্লিক ইভেন্ট ঘটেছে। ইভেন্টগুলো সাধারণত ডেলিগেটের ওপর ভিত্তি করে কাজ করে।

ইভেন্ট হ্যান্ডলার কী?

ইভেন্ট হ্যান্ডলার হলো একটি মেথড, যা ইভেন্ট ট্রিগার হওয়ার সময় কল হয়। সাধারণত ইভেন্ট হ্যান্ডলার ডেলিগেটের সাথে যুক্ত থাকে, এবং যখন ইভেন্ট ঘটে, তখন সেই ডেলিগেট ইভেন্ট হ্যান্ডলার মেথডকে কল করে।

ইভেন্ট এবং ইভেন্ট হ্যান্ডলার কিভাবে কাজ করে?

১. ইভেন্ট ডেলিগেট ঘোষণা করা: প্রথমে, ইভেন্টের জন্য একটি ডেলিগেট তৈরি করতে হয়। ২. ইভেন্ট ঘোষণা করা: তারপর সেই ডেলিগেটের ভিত্তিতে একটি ইভেন্ট তৈরি করা হয়। ৩. ইভেন্ট হ্যান্ডলার মেথড তৈরি করা: ইভেন্টের জন্য একটি হ্যান্ডলার মেথড তৈরি করা হয়, যেখানে ইভেন্ট ট্রিগার হলে কী কাজ হবে তা নির্ধারণ করা হয়। ৪. ইভেন্ট সাবস্ক্রাইব করা: অবশেষে, ইভেন্ট হ্যান্ডলারকে ইভেন্টের সাথে যুক্ত করা হয়।

উদাহরণ: ইভেন্ট এবং ইভেন্ট হ্যান্ডলার

নিচে একটি উদাহরণ দেওয়া হলো যেখানে একটি ProcessCompleted ইভেন্ট ঘোষণা করা হয়েছে এবং একটি ইভেন্ট হ্যান্ডলার যুক্ত করা হয়েছে।

using System;

// ডেলিগেট ঘোষণা করা
public delegate void ProcessCompletedEventHandler(object sender, EventArgs e);

public class Process
{
    // ইভেন্ট ঘোষণা করা
    public event ProcessCompletedEventHandler ProcessCompleted;

    public void StartProcess()
    {
        Console.WriteLine("Process Started...");
        // কিছু সময় পর প্রক্রিয়াটি শেষ হচ্ছে এমনটি ভাবুন
        System.Threading.Thread.Sleep(2000);

        // ইভেন্ট ট্রিগার করা
        OnProcessCompleted();
    }

    // ইভেন্ট হ্যান্ডলারকে কল করার জন্য একটি সুরক্ষিত মেথড
    protected virtual void OnProcessCompleted()
    {
        if (ProcessCompleted != null)
        {
            ProcessCompleted(this, EventArgs.Empty); // ইভেন্ট ট্রিগার করছে
        }
    }
}

public class Program
{
    public static void Main()
    {
        Process process = new Process();

        // ইভেন্ট সাবস্ক্রাইব করা (ইভেন্টের জন্য হ্যান্ডলার মেথড যুক্ত করা)
        process.ProcessCompleted += ProcessCompletedHandler;

        // প্রক্রিয়া শুরু করা
        process.StartProcess();
    }

    // ইভেন্ট হ্যান্ডলার মেথড
    public static void ProcessCompletedHandler(object sender, EventArgs e)
    {
        Console.WriteLine("Process Completed Successfully.");
    }
}

ব্যাখ্যা

১. ProcessCompletedEventHandler ডেলিগেট: এটি একটি ডেলিগেট যা ইভেন্টের জন্য ব্যবহৃত হয়েছে। ২. ProcessCompleted ইভেন্ট: Process ক্লাসে ProcessCompleted নামে একটি ইভেন্ট ঘোষণা করা হয়েছে, যা ProcessCompletedEventHandler ডেলিগেটের ভিত্তিতে তৈরি হয়েছে। 3. OnProcessCompleted মেথড: এই মেথডটি ProcessCompleted ইভেন্টকে ট্রিগার করে। 4. ProcessCompletedHandler ইভেন্ট হ্যান্ডলার: এটি ইভেন্ট হ্যান্ডলার মেথড যা ইভেন্টটি ট্রিগার হলে কল হয়।

উপরের উদাহরণে, যখন StartProcess মেথড চালানো হয়, তখন কিছুক্ষণ পর ProcessCompleted ইভেন্টটি ট্রিগার করা হয় এবং ProcessCompletedHandler মেথডটি কল হয়।

ইভেন্ট হ্যান্ডলার ব্যবহার কেন গুরুত্বপূর্ণ?

১. ইউজার ইন্টারঅ্যাকশন: উইন্ডোজ বা ওয়েব অ্যাপ্লিকেশনে ইভেন্ট হ্যান্ডলার ব্যবহার করে ব্যবহারকারীর ক্রিয়াকলাপের (যেমন ক্লিক, টাইপিং) প্রতি সাড়া দেওয়া সম্ভব হয়। ২. অ্যাসিঙ্ক্রোনাস প্রসেসিং: ইভেন্ট ব্যবহারের মাধ্যমে অ্যাসিঙ্ক্রোনাস বা ব্যাকগ্রাউন্ড প্রসেসিং হ্যান্ডল করা সহজ হয়। ৩. মডুলার কোড: ইভেন্ট হ্যান্ডলার প্রোগ্রামের কোডকে আরও মডুলার এবং ব্যবস্থাপনা সহজ করে তোলে।

সংক্ষেপে

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

Content added By

আরও দেখুন...

Promotion