💡 public virtual MemberInfo[] GetMembers();

Retrieves all public members of the current Type.

Overload List

GetMembers()

public virtual MemberInfo[] GetMembers();

Retrieves all public members of the current Type.

Return Value

MemberInfo[]

An array of MemberInfo objects representing all the public members of the current Type. If the current Type has no public members, an empty array is returned.

Remarks

This method retrieves public members. To retrieve members that are not public, use the GetMembers(BindingFlags bindingAttr) overload.

Example


using System;
using System.Reflection;

public class Example
{
    public string MyProperty { get; set; }
    public void MyMethod() { }
    public event EventHandler MyEvent;
    public int MyField;
}

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

        Console.WriteLine($"Members of {myType.Name}:");
        foreach (MemberInfo member in members)
        {
            Console.WriteLine($"- {member.MemberType}: {member.Name}");
        }
    }
}
            

GetMembers(BindingFlags bindingAttr)

public virtual MemberInfo[] GetMembers(BindingFlags bindingAttr);

Retrieves all members of the current Type that match the specified binding attributes.

Parameters

bindingAttr

A bitmask that specifies the type of members to search for.
System.Reflection.BindingFlags members.

  • BindingFlags.Public: Specifies public members.
  • BindingFlags.NonPublic: Specifies non-public members.
  • BindingFlags.Instance: Specifies instance members.
  • BindingFlags.Static: Specifies static members.
  • BindingFlags.DeclaredOnly: Specifies that only members declared by the Type should be returned.
  • BindingFlags.InvokeMethod: Specifies methods.
  • BindingFlags.GetField: Specifies fields.
  • BindingFlags.GetProperty: Specifies properties.
  • BindingFlags.Event: Specifies events.
  • BindingFlags.All: All binding flags.

Return Value

MemberInfo[]

An array of MemberInfo objects representing members of the current Type that match the specified binding attributes. If no members match the attributes, an empty array is returned.

Remarks

Note: You can combine binding flags using the bitwise OR operator. For example, BindingFlags.Public | BindingFlags.Instance will retrieve all public instance members.

Example


using System;
using System.Reflection;

public class MyClass
{
    public int PublicInstanceField;
    private int privateInstanceField;
    public static int PublicStaticField;

    public void PublicInstanceMethod() { }
    private void PrivateInstanceMethod() { }
}

public class Program
{
    public static void Main(string[] args)
    {
        Type myType = typeof(MyClass);

        // Get all public instance members
        MemberInfo[] publicInstanceMembers = myType.GetMembers(BindingFlags.Public | BindingFlags.Instance);
        Console.WriteLine("\nPublic Instance Members:");
        foreach (MemberInfo member in publicInstanceMembers)
        {
            Console.WriteLine($"- {member.MemberType}: {member.Name}");
        }

        // Get all private instance members
        MemberInfo[] privateInstanceMembers = myType.GetMembers(BindingFlags.NonPublic | BindingFlags.Instance);
        Console.WriteLine("\nPrivate Instance Members:");
        foreach (MemberInfo member in privateInstanceMembers)
        {
            Console.WriteLine($"- {member.MemberType}: {member.Name}");
        }

        // Get all public static members
        MemberInfo[] publicStaticMembers = myType.GetMembers(BindingFlags.Public | BindingFlags.Static);
        Console.WriteLine("\nPublic Static Members:");
        foreach (MemberInfo member in publicStaticMembers)
        {
            Console.WriteLine($"- {member.MemberType}: {member.Name}");
        }
    }
}
            

See Also