C#-এ রিফ্লেকশন ব্যবহার করে একটি টাইপের ভিতরে ডিক্লেয়ার করা নেস্টেড টাইপগুলো (ক্লাস, স্ট্রাক্ট, ইন্টারফেস, এনাম) GetNestedTypes() মেথড দিয়ে পাওয়া যায়।
উদাহরণ ১: সব নেস্টেড টাইপ পাওয়া
using System;
public class Demo {
public static void Main() {
Type type1 = typeof(Subject);
try {
Type[] type2 = type1.GetNestedTypes();
Console.WriteLine("Nested Types...");
for (int i = 0; i < type2.Length; i++)
Console.WriteLine("{0} ", type2[i]);
}
catch (ArgumentNullException e) {
Console.Write("{0}", e.GetType(), e.Message);
}
}
}
public class Subject {
public class BasicSubject { }
public class AdvSubject { }
}
আউটপুট
Nested Types... Subject+BasicSubject Subject+AdvSubject
উদাহরণ ২: BindingFlags দিয়ে পাবলিক নেস্টেড টাইপ ফিল্টার করা
using System;
using System.Reflection;
public class Demo {
public static void Main() {
Type type1 = typeof(Subject);
try {
Type[] type2 = type1.GetNestedTypes(BindingFlags.Public);
Console.WriteLine("Nested Types...");
for (int i = 0; i < type2.Length; i++)
Console.WriteLine("{0} ", type2[i]);
}
catch (ArgumentNullException e) {
Console.Write("{0}", e.GetType(), e.Message);
}
}
}
public class Subject {
public class BasicSubject { }
public class AdvSubject { }
}
আউটপুট
Nested Types... Subject+BasicSubject Subject+AdvSubject
ব্যাখ্যা
GetNestedTypes()— পাবলিক নেস্টেড টাইপগুলো রিটার্ন করে।GetNestedTypes(BindingFlags)— নন-পাবলিক ও স্ট্যাটিক নেস্টেড টাইপও পাওয়া যায়।- নেস্টেড টাইপের নাম ফরম্যাট:
OuterType+NestedType।