เมธอด Type.GetField() ใน C# ใช้ดึงฟิลด์เฉพาะของ Type ปัจจุบัน
ไวยากรณ์
public System.Reflection.FieldInfo GetField (string name); public abstract System.Reflection.FieldInfo GetField (string name, System.Reflection.BindingFlags bindingAttr);
พารามิเตอร์ name คือสตริงที่มีชื่อฟิลด์ข้อมูลที่ต้องการดึง พารามิเตอร์ bindingAttr คือการรวมบิตของค่าการนับที่ระบุวิธีการค้นหา
ตัวอย่าง
ตัวอย่างที่ 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 (จะโยน 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