📜  C#| Type.GetMembers()方法(1)

📅  最后修改于: 2023-12-03 15:00:15.166000             🧑  作者: Mango

C# | Type.GetMembers()方法

在C#编程语言中,Type.GetMembers()方法是用于获取某个类型(Type)的成员(Member)信息的方法。成员可以是字段(Field)、方法(Method)、构造函数(Constructor)、属性(Property)等。

语法

Type.GetMembers()方法的语法如下:

public MemberInfo[] GetMembers();
参数

Type.GetMembers()方法没有参数。

返回值

Type.GetMembers()方法返回一个包含该类型所有成员信息的数组,数组中的每个元素都是MemberInfo类型的对象。

使用示例

下面是一个使用Type.GetMembers()方法的示例,我们定义了一个名为Person的类,该类包含了三个字段、两个方法和一个属性。在程序中,我们使用Type.GetMembers()方法获取Person类的所有成员,并将这些成员打印出来。

using System;
using System.Reflection;

namespace Example
{
    class Person
    {
        public string Name;
        public int Age;
        public bool IsMarried;

        public void SayHello()
        {
            Console.WriteLine("Hello, my name is " + Name);
        }

        public bool TrySayHi(string name)
        {
            if (string.IsNullOrEmpty(name))
            {
                return false;
            }

            Console.WriteLine("Hi " + name + "!");
            return true;
        }

        public string Address
        {
            get
            {
                return "No.1, Main Street";
            }
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            Type type = typeof(Person);
            MemberInfo[] members = type.GetMembers();

            foreach (MemberInfo member in members)
            {
                Console.WriteLine(member);
            }
        }
    }
}

上面的代码运行后,会依次输出以下信息:

System.String Name
System.Int32 Age
System.Boolean IsMarried
Void SayHello()
Boolean TrySayHi(System.String)
System.String get_Address()
总结

Type.GetMembers()方法是一个重要的反射方法,可以让程序员通过反射获取类型的成员信息,并在程序中进行操作。只不过获取到的成员信息较多,需要我们在打印输出这些信息时进行筛选和过滤。