Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

เมธอด Type.GetField() ใน C#

เมธอด 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