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

C#-এ [] অপারেটর (Indexer) ওভারলোড করা

[] অপারেটরকে ইনডেক্সার (Indexer) বলা হয়।

ইনডেক্সার একটি অবজেক্টকে অ্যারে মতো ইনডেক্স করার সুযোগ দেয়। ক্লাসের জন্য ইনডেক্সার ডিফাইন করলে ক্লাসটি ভার্চুয়াল অ্যারে처럼 বিহেভ করে। আপনি তখন ক্লাসের ইনস্ট্যান্সকে অ্যারে অ্যাক্সেস অপারেটর ([ ]) দিয়ে অ্যাক্সেস করতে পারেন।

ইনডেক্সার ওভারলোড করা যায়। একাধিক প্যারামিটার সহ ডিক্লেয়ার করা যায় এবং প্রতিটি প্যারামিটার ভিন্ন টাইপের হতে পারে। ইনডেক্স অবশ্যই ইন্টিজার হতে হবে নয়।

উদাহরণ ১: বেসিক ইনডেক্সার (int ইনডেক্স)

static void Main(string[] args)
{
    IndexerClass Team = new IndexerClass();
    Team[0] = "A"; Team[1] = "B"; Team[2] = "C"; Team[3] = "D";
    Team[4] = "E"; Team[5] = "F"; Team[6] = "G"; Team[7] = "H";
    Team[8] = "I"; Team[9] = "J";
    for (int i = 0; i < 10; i++) Console.WriteLine(Team[i]);
    Console.ReadLine();
}
class IndexerClass
{
    private string[] names = new string[10];
    public string this[int i]
    {
        get { return names[i]; }
        set { names[i] = value; }
    }
}

আউটপুট

A B C D E F G H I J

উদাহরণ ২: ইনডেক্সার ওভারলোড (string ইনডেক্স)

static class Program
{
    static void Main(string[] args)
    {
        IndexerClass Team = new IndexerClass();
        Team[0] = "A"; Team[1] = "B"; Team[2] = "C";
        for (int i = 0; i < 10; i++) Console.WriteLine(Team[i]);
        System.Console.WriteLine(Team["C"]); // স্ট্রিং ইনডেক্সার কল
        Console.ReadLine();
    }
}
class IndexerClass
{
    private string[] names = new string[10];
    public string this[int i]
    {
        get { return names[i]; }
        set { names[i] = value; }
    }
    public string this[string i] // ওভারলোডেড ইনডেক্সার
    {
        get { return names.Where(x => x == i).FirstOrDefault(); }
    }
}

আউটপুট

A B C C

ব্যাখ্যা: একই ক্লাসে ভিন্ন সিগনেচার (int vs string) দিয়ে একাধিক ইনডেক্সার থাকতে পারে। এটি কালেকশন-লাইক অ্যাক্সেস প্যাটার্ন সক্ষম করে।

  1. C#-এ 'as' অপারেটর কীভাবে ব্যবহার করবেন?

  2. পাইথন টার্নারি অপারেটর ওভারলোড করা যায় কিনা

  3. পাইথনে টাপলে * অপারেটর কীভাবে কাজ করে?

  4. রুবির টার্নারি অপারেটর মাস্টার করুন: কম্প্যাক্ট কন্ডিশনাল লজিকের কুইক গাইড