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

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

เมธอด Type.GetMembers() ใน C# ใช้สำหรับดึงสมาชิก (properties, methods, fields, events, เป็นต้น) ของ Type ปัจจุบัน

ไวยากรณ์

เมธอดนี้มี 2 การโหลดทับ:

public System.Reflection.MemberInfo[] GetMembers ();
public abstract System.Reflection.MemberInfo[] GetMembers (System.Reflection.BindingFlags bindingAttr);

ตัวอย่าง

ตัวอย่างการใช้งานเมธอด Type.GetMembers():

using System; 
using System.Reflection; 
public class Demo { 
    public static void Main(){ 
        Type type = typeof(Subject); 
        try { 
            FieldInfo fieldInfo = type.GetField("SubName"); 
            MemberInfo[] info = type.GetMembers(); 
            Console.Write("Members = "); 
            for (int i = 0; i < info.Length; i++) 
                Console.WriteLine(" {0}", info[i]); 
            Console.WriteLine("FieldInfo = {0}", fieldInfo); 
        } 
        catch (ArgumentNullException e){ 
            Console.Write("{0}", e.GetType(), e.Message); 
        } 
    } 
} 
public class Subject{ 
    public string SubName = "Science"; 
}

ผลลัพธ์

โค้ดจะแสดงผลดังนี้:

Members = System.String ToString() Boolean Equals(System.Object) Int32 GetHashCode() System.Type GetType() Void .ctor() System.String SubName 
FieldInfo = System.String SubName

ตัวอย่างเพิ่มเติม

ตัวอย่างที่สองกับ BindingFlags:

using System; 
using System.Reflection; 
public class Demo { 
    public static void Main(){ 
        Type type = typeof(Subject); 
        try { 
            FieldInfo fieldInfo = type.GetField("SubName"); 
            MemberInfo[] info = type.GetMembers(BindingFlags.Public | BindingFlags.Instance); 
            Console.Write("Members = "); 
            for (int i = 0; i < info.Length; i++) 
                Console.WriteLine(" {0}", info[i]); 
            Console.WriteLine("FieldInfo = {0}", fieldInfo); 
        } 
        catch (ArgumentNullException e){ 
            Console.Write("{0}", e.GetType(), e.Message); 
        } 
    } 
} 
public class Subject{ 
    public string SubName = "Science"; 
}

ผลลัพธ์

โค้ดจะแสดงผลดังนี้ (เฉพาะสมาชิก public instance):

Members = System.String ToString() Boolean Equals(System.Object) Int32 GetHashCode() System.Type GetType() Void .ctor()