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
参考:
相关用法
- C# DateTimeOffset.Add()用法及代码示例
- C# String.Contains()用法及代码示例
- C# Math.Sin()用法及代码示例
- C# Math.Cos()用法及代码示例
- C# Dictionary.Add()用法及代码示例
- C# Math.Tan()用法及代码示例
- C# Math.Abs()方法用法及代码示例
- C# Math.Exp()用法及代码示例
- C# Math.Abs()函数用法及代码示例
注:本文由纯净天空筛选整理自RohitPrasad3大神的英文原创作品 C# | Type.GetProperties() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。