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

C#-এ রিফ্লেকশন দিয়ে টাইপের নির্দিষ্ট মেম্বার পাওয়া

C#-এ System.Reflection নেমস্পেস ব্যবহার করে রানটাইমে টাইপের মেম্বার (ফিল্ড, মেথড, প্রপার্টি ইত্যাদি) খুঁজে বের করা যায়। GetMember() এবং GetField() মেথডগুলো এই কাজে সাহায্য করে।

উদাহরণ ১: GetMember দিয়ে মেম্বার খুঁজে বের করা

using System;
using System.Reflection;

public class Demo {
    public static void Main() {
        Type type = typeof(Subject);
        try {
            FieldInfo fieldInfo = type.GetField("SubName");
            MemberInfo[] info = type.GetMember("SubName");
            Console.Write("Members = ");
            for (int i = 0; i < info.Length; i++)
                Console.WriteLine(" {0}", info[i]);
            Console.WriteLine("FieldInfo = {0}", fieldInfo);
        }
        catch (ArgumentNullException e) {
            Console.Write("{0}", e.GetType(), e.Message);
        }
    }
}

public class Subject {
    public string SubName = "Science";
}

আউটপুট

Members = 
System.String SubName
FieldInfo = System.String SubName

উদাহরণ ২: BindingFlags ব্যবহার করে পাবলিক ইনস্ট্যান্স মেম্বার ফিল্টার করা

using System;
using System.Reflection;

public class Demo {
    public static void Main() {
        Type type = typeof(Subject);
        try {
            FieldInfo fieldInfo = type.GetField("SubName");
            MemberInfo[] info = type.GetMember("SubName", BindingFlags.Public | BindingFlags.Instance);
            Console.Write("Members = ");
            for (int i = 0; i < info.Length; i++)
                Console.WriteLine(" {0}", info[i]);
            Console.WriteLine("FieldInfo = {0}", fieldInfo);
        }
        catch (ArgumentNullException e) {
            Console.Write("{0}", e.GetType(), e.Message);
        }
    }
}

public class Subject {
    public string SubName = "Science";
}

আউটপুট

Members = System.String SubName
FieldInfo = System.String SubName

বিবরণ

  • GetMember(name) — নাম অনুযায়ী সব মেম্বার (ফিল্ড, প্রপার্টি, মেথড ইত্যাদি) রিটার্ন করে।
  • GetField(name) — শুধু ফিল্ড খুঁজে বের করে।
  • BindingFlags দিয়ে পাবলিক/প্রাইভেট, ইনস্ট্যান্স/স্ট্যাটিক ফিল্টার করা যায়।
  1. বর্তমান এনামারেশন টাইপের আন্ডারলাইং টাইপ পান C#-এ

  2. বর্তমান এনামারেশন টাইপের সদস্যদের নাম পান C#-এ

  3. C#-এ বর্তমান ইন্সট্যান্সের টাইপ পান

  4. C#-এ Enum.GetType() মেথড: এনামের টাইপ পাওয়া