当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C# Type.GetProperties()用法及代码示例


Type.GetProperties()方法用于获取当前Type的属性。此方法的重载列表中有2种方法,如下所示:

    • GetProperties()方法
    • GetProperties(BindingFlags)方法

GetProperties() Method

此方法用于返回当前Type的所有公共属性。


用法: public System.Reflection.PropertyInfo[] GetProperties ();

返回值:此方法返回代表当前Type的所有公共属性的PropertyInfo对象的数组,或者如果当前Type没有公共属性,则返回一个PropertyInfo类型的空数组。

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

示例1:

// C# program to demonstrate the 
// Type.GetProperties() 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(string); 
  
        // try-catch block for handling Exception 
        try { 
  
            // using GetProperties() Method 
            PropertyInfo[] type = objType.GetProperties(); 
  
            // Display the Result 
            Console.WriteLine("Properties of current type is: "); 
            for (int i = 0; i < type.Length; i++) 
                Console.WriteLine(" {0}", type[i]); 
        } 
  
        // catch ArgumentNullException here 
        catch (ArgumentNullException e) 
        { 
            Console.Write("name is null."); 
            Console.Write("Exception Thrown: "); 
            Console.Write("{0}", e.GetType(), e.Message); 
        } 
    } 
}
输出:
Properties of current type is: 
 Int32 Length
 Char Chars [Int32]

示例2:

// C# program to demonstrate the 
// Type.GetProperties() 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(System.Type); 
  
        // try-catch block for handling Exception 
        try { 
  
            // using GetProperties() Method 
            PropertyInfo[] type = objType.GetProperties(); 
  
            // Display the Result 
            Console.WriteLine("Properties of current type is: "); 
            for (int i = 0; i < 10; i++) 
                Console.WriteLine(" {0}", type[i]); 
        } 
  
        // catch ArgumentNullException here 
        catch (ArgumentNullException e)  
        { 
            Console.Write("name is null."); 
            Console.Write("Exception Thrown: "); 
            Console.Write("{0}", e.GetType(), e.Message); 
        } 
    } 
}
输出:
Properties of current type is: 
 System.Reflection.MemberTypes MemberType
 System.Type DeclaringType
 System.Reflection.MethodBase DeclaringMethod
 System.Type ReflectedType
 System.Runtime.InteropServices.StructLayoutAttribute StructLayoutAttribute
 System.Guid GUID
 System.Reflection.Binder DefaultBinder
 System.Reflection.Module Module
 System.Reflection.Assembly Assembly
 System.RuntimeTypeHandle TypeHandle

GetProperties(BindingFlags) Method

此方法用于在派生类中重写时使用指定的绑定约束来搜索当前Type的属性。

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

返回值:如果当前Type不具有属性,或者如果没有属性与绑定约束相匹配,则此方法返回一个PropertyInfo对象数组,该对象表示与指定绑定约束匹配的当前Type的所有属性,或者返回一个PropertyInfo类型的空数组。


示例1:

// C# program to demonstrate the 
// Type.GetProperties(BindingFlags) 
// 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(Dog); 
  
        // using GetProperties() Method 
        PropertyInfo[] type = objType.GetProperties(BindingFlags.Instance | BindingFlags.Public); 
  
        // Display the Result 
        Console.WriteLine("Properties of current type is: "); 
        for (int i = 0; i < type.Length; i++) 
            Console.WriteLine(" {0}", type[i]); 
    } 
} 
  
// Defining class Dog 
public class Dog { 
  
    private string color, breed, type; 
  
    // Constructor 
    public Dog(string color, string breed, string type) 
    { 
        this.color = color; 
        this.breed = breed; 
        this.type = type; 
    } 
  
    // Color Property 
    public String Color 
    { 
        get { return color; } 
    } 
  
    // Breed Property 
    public String Breed 
    { 
        get { return breed; } 
    } 
  
    // Type Property 
    public String Type 
    { 
        get { return type; } 
    } 
  
    // BloodGroup Property 
    private String BloodGroup 
    { 
        get { return "AB+"; } 
    } 
}
输出:
Properties of current type is: 
 System.String Color
 System.String Breed
 System.String Type

示例2:

// C# program to demonstrate the 
// Type.GetProperties(BindingFlags) 
// 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(Dog); 
  
        // using GetProperties() Method 
        PropertyInfo[] type = objType.GetProperties(BindingFlags.Instance | BindingFlags.NonPublic); 
  
        // Display the Result 
        Console.WriteLine("Properties of current type is: "); 
        for (int i = 0; i < type.Length; i++) 
            Console.WriteLine(" {0}", type[i]); 
    } 
} 
  
// Defining class Dog 
public class Dog { 
  
    private string color, breed, type, bp; 
  
    // Constructor 
    public Dog(string color, string breed, 
                   string type, string bp) 
    { 
        this.color = color; 
        this.breed = breed; 
        this.type = type; 
        this.bp = bp; 
    } 
  
    // Color Property 
    public String Color 
    { 
        get { return color; } 
    } 
  
    // Breed Property 
    public String Breed 
    { 
        get { return breed; } 
    } 
  
    // Type Property 
    public String Type 
    { 
        get { return type; } 
    } 
  
    // BloodGroup Property 
    protected String BloodGroup 
    { 
        get { return "AB+"; } 
    } 
  
    // BloodPressure Property 
    protected String BloodPressure 
    { 
        get { return bp; } 
    } 
}
输出:
Properties of current type is: 
 System.String BloodGroup
 System.String BloodPressure

参考:



相关用法


注:本文由纯净天空筛选整理自RohitPrasad3大神的英文原创作品 C# | Type.GetProperties() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。