當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C# Type.GetMembers()用法及代碼示例


Type.GetMembers()方法用於獲取當前Type的成員(屬性,方法,字段,事件等)。此方法的重載列表中有2種方法,如下所示:

    • GetMembers()方法
    • GetMembers(BindingFlags)方法

GetMembers() Method

此方法用於返回當前Type的所有公共成員。


用法: public System.Reflection.MemberInfo[] GetMembers ();

返回值:此方法返回代表當前Type的所有公共成員的MemberInfo對象的數組;如果當前Type沒有公共成員,則返回MemberInfo類型的空數組。

以下示例程序旨在說明Type.GetMembers()方法的使用:

示例1:

// C# program to demonstrate the 
// Type.GetMember() Method 
using System; 
using System.Globalization; 
using System.Reflection; 
  
// Defining Empty class 
public class Empty { } 
  
class GFG { 
  
    // Main Method 
    public static void Main() 
    { 
        // Declaring and initializing object of Type 
        Type objType = typeof(Empty); 
  
        // try-catch block for handling Exception 
        try { 
  
            // Getting array of MemberInfos by 
            // using GetMembers() Method 
            MemberInfo[] info = objType.GetMembers(); 
  
            // Display the Result 
            Console.WriteLine("Fields of current type is as Follow: "); 
  
            for (int i = 0; i < info.Length; i++) 
                Console.WriteLine(" {0}", info[i]); 
        } 
  
        // catch ArgumentNullException here 
        catch (ArgumentNullException e)  
        { 
            Console.Write("name is null."); 
            Console.Write("Exception Thrown: "); 
            Console.Write("{0}", e.GetType(), e.Message); 
        } 
    } 
}
輸出:
Fields of current type is as Follow: 
 Boolean Equals(System.Object)
 Int32 GetHashCode()
 System.Type GetType()
 System.String ToString()
 Void .ctor()

示例2:

// C# program to demonstrate the 
// Type.GetMember() Method 
using System; 
using System.Globalization; 
using System.Reflection; 
  
class GFG { 
  
    // Main Method 
    public static void Main() 
    { 
        // Declaring and initializing object of Type 
        Type objType = typeof(int); 
  
        // try-catch block for handling Exception 
        try { 
  
            // Getting array of MemberInfos by 
            // using GetMembers() Method 
            MemberInfo[] info = objType.GetMembers(); 
  
            // Display the Result 
            Console.WriteLine("Fields of current type is as Follow: "); 
            for (int i = 0; i < 6; i++) 
                Console.WriteLine(" {0}", info[i]); 
        } 
  
        // catch ArgumentNullException here 
        catch (ArgumentNullException e) { 
            Console.Write("name is null."); 
            Console.Write("Exception Thrown: "); 
            Console.Write("{0}", e.GetType(), e.Message); 
        } 
    } 
}
輸出:
Fields of current type is as Follow: 
 Int32 CompareTo(System.Object)
 Int32 CompareTo(Int32)
 Boolean Equals(System.Object)
 Boolean Equals(Int32)
 Int32 GetHashCode()
 System.String ToString()

GetMembers(BindingFlags) Method

此方法用於在派生類中重寫時使用指定的綁定約束來搜索為當前Type定義的成員。

用法: public abstract System.Reflection.MemberInfo[] GetMembers (System.Reflection.BindingFlags bindingAttr);
Here, it takes a bitmask comprised of one or more BindingFlags that specify how the search is conducted or,
Zero (Default), to return an empty array.

返回值:此方法返回一個MemberInfo對象的數組,該數組表示為當前Type定義的所有與指定綁定約束匹配的成員;或者,如果沒有為當前Type定義任何成員,或者如果沒有定義的成員與綁定匹配,則為MemberInfo類型的空數組約束。


以下示例程序旨在說明上述方法的用法:

示例1:

// C# program to demonstrate the 
// Type.GetMembers(BindingFlags) 
// Method 
using System; 
using System.Globalization; 
using System.Reflection; 
  
// Defining class Empty 
public class Empty { } 
  
class GFG { 
  
    // Main Method 
    public static void Main() 
    { 
        // Declaring and initializing object of Type 
        Type objType = typeof(Empty); 
  
        // try-catch block for handling Exception 
        try { 
  
            // Getting array of Fields by 
            // using GetField() Method 
            MemberInfo[] info = objType.GetMembers(BindingFlags.Public 
                                                   | BindingFlags.Instance); 
  
            // Display the Result 
            Console.WriteLine("Fields of current type is as Follow: "); 
            for (int i = 0; i < info.Length; i++) 
                Console.WriteLine(" {0}", info[i]); 
        } 
  
        // catch ArgumentNullException here 
        catch (ArgumentNullException e) { 
            Console.WriteLine("name is null."); 
            Console.Write("Exception Thrown: "); 
            Console.Write("{0}", e.GetType(), e.Message); 
        } 
    } 
}
輸出:
Fields of current type is as Follow: 
 Boolean Equals(System.Object)
 Int32 GetHashCode()
 System.Type GetType()
 System.String ToString()
 Void .ctor()

示例2:

// C# program to demonstrate the 
// Type.GetMembers(BindingFlags) 
// Method 
using System; 
using System.Globalization; 
using System.Reflection; 
  
// Defining class Empty 
public class Empty { } 
  
class GFG { 
  
    // Main Method 
    public static void Main() 
    { 
        // Declaring and initializing object of Type 
        Type objType = typeof(int); 
  
        // try-catch block for handling Exception 
        try { 
  
            // Getting array of Fields by 
            // using GetField() Method 
            MemberInfo[] info = objType.GetMembers(BindingFlags.Public 
                                                   | BindingFlags.Static); 
  
            // Display the Result 
            Console.WriteLine("Fields of current type is as Follow: "); 
            for (int i = 0; i < info.Length; i++) 
                Console.WriteLine(" {0}", info[i]); 
        } 
  
        // catch ArgumentNullException here 
        catch (ArgumentNullException e)  
        { 
            Console.WriteLine("name is null."); 
            Console.Write("Exception Thrown: "); 
            Console.Write("{0}", e.GetType(), e.Message); 
        } 
    } 
}
輸出:
Fields of current type is as Follow: 
 Int32 Parse(System.String)
 Int32 Parse(System.String, System.Globalization.NumberStyles)
 Int32 Parse(System.String, System.IFormatProvider)
 Int32 Parse(System.String, System.Globalization.NumberStyles, System.IFormatProvider)
 Boolean TryParse(System.String, Int32 ByRef)
 Boolean TryParse(System.String, System.Globalization.NumberStyles, System.IFormatProvider, Int32 ByRef)
 System.Int32 MaxValue
 System.Int32 MinValue

參考:



相關用法


注:本文由純淨天空篩選整理自RohitPrasad3大神的英文原創作品 C# | Type.GetMembers() Method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。