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

C#-তে Func ডেলিগেট এবং Action ডেলিগেটের পার্থক্য কী?

একটি ডেলিগেট একটি টাইপ যা একটি নির্দিষ্ট প্যারামিটার লিস্ট এবং রিটার্ন টাইপ সহ মেথডের রেফারেন্স রিপ্রেজেন্ট করে। যখন আমরা একটি ডেলিগেট ইনস্ট্যানশিয়েট করি, আমরা এর ইনস্ট্যান্সকে যেকোনো কম্প্যাটিবল সিগনেচার এবং রিটার্ন টাইপ 가진 মেথডের সাথে অ্যাসোসিয়েট করতে পারি। আমরা ডেলিগেট ইনস্ট্যান্সের মাধ্যমে মেথডটি ইনভোক (কল) করতে পারি।

Func Delegate

`Func` System নেমস্পেসে অন্তর্ভুক্ত একটি জেনেরিক ডেলিগেট। এর শূন্য বা অধিক ইনপুট প্যারামিটার এবং একটি আউট প্যারামিটার থাকে। লাস্ট প্যারামিটারটি আউট প্যারামিটার হিসেবে বিবেচনা হয়। এই ডেলিগেট ১৬টি প্যারামিটার পর্যন্ত গ্রহণ করতে পারে এবং একটি ভ্যালু রিটার্ন করে।

নিচে দুটি ইনপুট এবং একটি আউটপুট প্যারামিটার সহ `Func` ডেলিগেট দেওয়া হলো:

Func Append;

উদাহরণ

using System;

namespace DemoApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            Func func = Append;
            string fullName = func("Michael", "Jackson");
            Console.WriteLine(fullName);
            Console.ReadLine();
        }

        static string Append(string firstName, string lastName)
        {
            return firstName + lastName;
        }
    }
}

আউটপুট

MichaelJackson

Action Delegate

`Action` System নেমস্পেসে ডিফাইন করা একটি ডেলিগেট টাইপ। `Action` টাইপ ডেলিগেট `Func` ডেলিগেটের সমানই সिवায় `Action` ডেলিগেট কোনো মান রিটার্ন করে না। অন্য কথায়, `Action` ডেলিগেটকে `void` রিটার্ন টাইপ 가진 মেথডের সাথে ব্যবহার করা যায়। এতে কমপক্ষে ১ এবং সর্বোচ্চ ১৬টি ইনপুট প্যারামিটার থাকতে পারে এবং কোনো আউটপুট প্যারামিটার থাকে না।

নিচে দুটি ইনপুট প্যারামিটার সহ `Action` ডেলিগেট দেওয়া হলো:

Action Print;

উদাহরণ

using System;

namespace DemoApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            Action action = AppendPrint;
            action("Michael", "Jackson");
            Console.ReadLine();
        }

        static void AppendPrint(string firstName, string lastName)
        {
            string fullName = firstName + lastName;
            Console.WriteLine($"{fullName}");
        }
    }
}

আউটপুট

MichaelJackson
  1. C#-এ String.Copy() এবং String.Clone() মেথডের পার্থক্য

  2. C#-এ ইন্টারফেস (Interface) এবং ক্লাস (Class) এর পার্থক্য

  3. C#-এ String (ক্লাস) এবং string (এলিয়াস) এর পার্থক্য

  4. পাইথনে স্ট্রিং এবং বাইট স্ট্রিং-এর পার্থক্য