C# 中关于反射的一个简单使用例子, 话不多说, 直接上代码.

cs
using System;
using System.Reflection;

namespace ConsoleApp2
{
    internal class Program
    {
        private static void Main(string[] args)
        {
            Type type = typeof(ImplicitlyDerivedFromObject);
            BindingFlags flags = BindingFlags.Instance
                | BindingFlags.Static
                | BindingFlags.Public
                | BindingFlags.NonPublic
                | BindingFlags.FlattenHierarchy;
            MemberInfo[] members = type.GetMembers(bindingAttr: flags);
            Console.WriteLine($"Type of {type.Name} has {members.Length} members:");
            foreach (var member in members)
            {
                string accss = "";
                string stat = "";
                var method = member as MethodBase;
                if (method != null)
                {
                    if (method.IsPublic)
                    {
                        accss = "Public";
                    }
                    else if (method.IsPrivate)
                    {
                        accss = "Private";
                    }
                    else if (method.IsFamily)
                    {
                        accss = "Protected";
                    }
                    else if (method.IsAssembly)
                    {
                        accss = "Internal";
                    }
                    else if (method.IsFamilyOrAssembly)
                    {
                        accss = "Protected Internal";
                    }
                    if (method.IsStatic)
                    {
                        stat = "Static";
                    }
                }
                var output = $"{member.Name} ({member.MemberType}): {accss} {stat}," +
                    $" Declared by {member.DeclaringType}";
                Console.WriteLine(output);
            }
            Console.ReadLine();
        }
    }

    public class ImplicitlyDerivedFromObject
    {
    }
}