Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Lấy các thành viên của Type hiện tại trong C#

Ví dụ 1

Sử dụng GetMembers() để lấy tất cả thành viên công khai:

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("Các thành viên = ");
            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";
}

Kết quả

Các thành viên = 
System.String ToString()
Boolean Equals(System.Object)
Int32 GetHashCode()
System.Type GetType()
Void .ctor()
System.String SubName
FieldInfo = System.String SubName

Ví dụ 2: Lọc với 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("Các thành viên = ");
            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";
}

Kết quả

Các thành viên = 
System.String ToString()
Boolean Equals(System.Object)
Int32 GetHashCode()
System.Type GetType()
Void .ctor()
System.String SubName
FieldInfo = System.String SubName