ภาพรวม
Type.GetField(string name) ดึงข้อมูล FieldInfo ของฟิลด์ public ที่ระบุชื่อ โยน ArgumentNullException หากชื่อเป็น null
ตัวอย่างที่ 1: ดึงฟิลด์ SubName จากคลาส Subject
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
ตัวอย่างที่ 2: พยายามดึงฟิลด์ด้วยชื่อ null (โยน Exception)
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()ค้นหาเฉพาะฟิลด์ public (instance หรือ static)- ต้องการ BindingFlags เพื่อค้นหา non-public หรือ static โดยเฉพาะ
- คืนค่า null หากไม่พบฟิลด์ (ไม่โยน exception)
- ชื่อฟิลด์เป็น null จะโยน ArgumentNullException