เมธอด Type.GetFields() ใน C# ใช้ดึงฟิลด์ (Fields) ของประเภท (Type) ปัจจุบัน
ไวยากรณ์
public System.Reflection.FieldInfo[] GetFields();
ตัวอย่างที่ 1: ดึงฟิลด์ non-public ของ String
using System;
using System.Reflection;
public class Demo
{
public static void Main()
{
Type type = typeof(System.String);
FieldInfo[] fields = type.GetFields(BindingFlags.Static | BindingFlags.NonPublic);
Console.WriteLine("Following are the non-public fields=");
foreach (FieldInfo myField in fields)
{
Console.WriteLine(myField.ToString());
}
}
}
ผลลัพธ์
Following are the non-public fields=
Int32 TrimHead
Int32 TrimTail
Int32 TrimBoth
Int32 charPtrAlignConst
Int32 alignConst
ตัวอย่างที่ 2: ดึงฟิลด์ non-public ของ Char
using System;
using System.Reflection;
public class Demo
{
public static void Main()
{
Type type = typeof(System.Char);
FieldInfo[] fields = type.GetFields(BindingFlags.Static | BindingFlags.NonPublic);
Console.WriteLine("\nFollowing are the non-public fields=");
foreach (FieldInfo myField in fields)
{
Console.WriteLine(myField.ToString());
}
}
}
ผลลัพธ์
Following are the non-public fields=
Byte[] categoryForLatin1
Int32 UNICODE_PLANE00_END
Int32 UNICODE_PLANE01_START
Int32 UNICODE_PLANE16_END
Int32 HIGH_SURROGATE_START
Int32 LOW_SURROGATE_END
หมายเหตุ: ต้องใช้ BindingFlags เพื่อระบุว่าต้องการดึงฟิลด์แบบไหน (Public, NonPublic, Static, Instance)