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

C#-এ রিফ্লেকশন (Reflection)

রিফ্লেকশন অবজেক্টগুলো রানটাইমে টাইপ ইনফরমেশন পেতে ব্যবহৃত হয়। একটি রানিং প্রোগ্রামের মেটাডেটা অ্যাক্সেস দিতে वाले ক্লাসগুলো System.Reflection নেমস্পেসে থাকে।

রিফ্লেকশনের অ্যাপ্লিকেশনগুলো:

  • রানটাইমে অ্যাট্রিবিউট ইনফরমেশন দেখতে দেয়।

  • এনাবিলি করছে একটি অ্যাসেমবলিতে বিভিন্ন টাইপ পরীক্ষা করা এবং সেগুলো ইনস্ট্যানসিয়েট করা।

  • মেথড এবং প্রপার্টিতে লেট বাইন্ডিং (late binding) করার অনুমতি দেয়।

  • রানটাইমে নতুন টাইপ তৈরি করা এবং সেগুলো ব্যবহার করে কিছু টাস্ক করা সম্ভব করে তোলে।

উদাহরণ

using System;

[AttributeUsage(AttributeTargets.All)]
public class HelpAttribute : System.Attribute
{
    public readonly string Url;
    public string Topic // Topic is a named parameter
    {
        get { return topic; }
        set { topic = value; }
    }
    public HelpAttribute(string url) // url is a positional parameter
    {
        this.Url = url;
    }
    private string topic;
}

[HelpAttribute("Information on the class MyClass")]
class MyClass { }

namespace AttributeAppl
{
    class Program
    {
        static void Main(string[] args)
        {
            System.Reflection.MemberInfo info = typeof(MyClass);
            object[] attributes = info.GetCustomAttributes(true);
            for (int i = 0; i < attributes.Length; i++)
            {
                System.Console.WriteLine(attributes[i]);
            }
            Console.ReadKey();
        }
    }
}
  1. জাভাস্ক্রিপ্টে একটি পয়েন্টের অন্য পয়েন্টের সাপেক্ষে রিফ্লেকশন বের করা

  2. C++-এ Line Reflection: ২D প্লেনে বিন্দুগুলোর Y-অক্ষ সমান্তরাল প্রতিফলন লাইন আছে কিনা যাচাই করা

  3. C++-এ মিরর রিফ্লেকশন সমস্যা সমাধান

  4. জাভাতে রিফ্লেকশন ব্যবহার করে স্ট্যাটিক ইনার ক্লাস ইনস্ট্যানশিয়েট করা