ภาพรวม
เมธอด Type.GetNestedType(string name) คืน Type ของ nested type ที่มีชื่อตรงตามที่ระบุ (คืน null หากไม่พบ) สามารถระบุ BindingFlags ได้
ตัวอย่างที่ 1: ดึง nested type ชื่อ "AdvSubject"
using System;
public class Demo
{
public static void Main()
{
Type type1 = typeof(Subject);
try
{
Type type2 = type1.GetNestedType("AdvSubject");
Console.Write("NestedType = " + type2);
}
catch (ArgumentNullException e)
{
Console.Write("{0}", e.GetType(), e.Message);
}
}
}
public class Subject
{
public class BasicSubject { }
public class AdvSubject { }
}
ผลลัพธ์
NestedType = Subject+AdvSubject
ตัวอย่างที่ 2: ส่งชื่อเป็น null (โยน ArgumentNullException)
using System;
public class Demo
{
public static void Main()
{
Type type1 = typeof(Subject);
try
{
Type type2 = type1.GetNestedType(null);
Console.Write("NestedType = " + type2);
}
catch (ArgumentNullException e)
{
Console.Write("{0}", e.GetType(), e.Message);
}
}
}
public class Subject
{
public class BasicSubject { }
public class AdvSubject { }
}
ผลลัพธ์
System.ArgumentNullException
สรุป
GetNestedTypeคืน Type เดียว ไม่ใช่อาร์เรย์- ส่งชื่อเป็น null จะโยน
ArgumentNullException - ใช้
BindingFlagsเพื่อค้นหา non-public nested types