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

C#-এ রিফ্লেকশনের অ্যাপ্লিকেশনগুলো কী কী?

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

রিফ্লেকশনের অ্যাপ্লিকেশনগুলো নিচে দেওয়া হলো:

  • রান-টাইমে অ্যাট্রিবিউট ইনফরমেশন দেখার সুযোগ দেয়।
  • একটি অ্যাসেমбліতে বিভিন্ন টাইপ পরীক্ষা করা এবং সেগুলো ইনস্ট্যানশিয়েট করা সম্ভব।
  • মেথড এবং প্রোপার্টিতে লেট বাইন্ডিং করার সুযোগ দেয়।
  • রান-টাইমে নতুন টাইপ তৈরি করা এবং সেগুলো ব্যবহার করে কিছু টাস্ক সম্পাদন করা সম্ভব।

System.Reflection নেমস্পেসে এমন ক্লাস রয়েছে যা অ্যাপ্লিকেশন সম্পর্কে তথ্য প্রাপ্ত করতে এবং ডাইনামিকভাবে টাইপ, ভ্যালু এবং অবজেক্ট অ্যাপ্লিকেশনে যোগ করতে দেয়।

নিচে টার্গেট ক্লাসের অবজেক্ট সেট করা হলো:

System.Reflection.MemberInfo info = typeof(MyClass);

সম্পূর্ণ উদাহরণ:

উদাহরণ

using System;
using System.Reflection;
[AttributeUsage(AttributeTargets.All)]
public class HelpAttribute : System.Attribute {
    public readonly string Url;
    public string Topic {
        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();
        }
    }
}

আউটপুট

HelpAttribute
  1. সি ভাষায় টোকেন (Tokens) কী?

  2. C++-এর কী ফিচারগুলো C#-এ নেই?

  3. C#-এ কমেন্ট (Comments) কী?

  4. C#-এ কাস্টম এক্সসেপশন (Custom Exceptions) কী?