Type.GetField(string name) মেথড ব্যবহার করে রিফ্লেকশনের মাধ্যমে একটি টাইপের পাবলিক ইন্সট্যান্স ফিল্ড (field) খুঁজে বের করা যায়। এটি FieldInfo অবজেক্ট রিটার্ন করে যার মাধ্যমে ফিল্ডের নাম, টাইপ, অ্যাট্রিবিউট ইত্যাদি জানা যায় এবং মান পাওয়া/সেট করা যায়। ফিল্ড না পাওয়া গেলে null রিটার্ন করে (এক্সেপশন না দিয়ে)।
উদাহরণ ১: বিদ্যমান ফিল্ড পাওয়া
using System;
using System.Reflection;
public class Demo {
public static void Main() {
Type type = typeof(Subject);
try {
FieldInfo fieldInfo = type.GetField("SubName");
Console.WriteLine("FieldInfo = {0}", fieldInfo);
}
catch (ArgumentNullException e) {
Console.Write("{0}", e.GetType(), e.Message);
}
}
}
public class Subject {
public string SubName = "Science";
}
আউটপুট
FieldInfo = System.String SubName
উদাহরণ ২: null নাম দিয়ে ফিল্ড খোঁজা (ArgumentNullException)
using System;
using System.Reflection;
public class Demo {
public static void Main() {
Type type = typeof(Subject);
try {
FieldInfo fieldInfo = type.GetField(null);
Console.WriteLine("FieldInfo = {0}", fieldInfo);
}
catch (ArgumentNullException e) {
Console.Write("{0}", e.GetType(), e.Message);
}
}
}
public class Subject {
public string SubName = "Science";
}
আউটপুট
System.ArgumentNullException
দ্রষ্টব্য: GetField() ডিফল্টভাবে পাবলিক ইন্সট্যান্স ফিল্ড খুঁজে। প্রাইভেট, স্ট্যাটিক বা নন-পাবলিক ফিল্ডের জন্য GetField(name, BindingFlags) ওভারলোড ব্যবহার করতে হয় (BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static ইত্যাদি)।