using System;
using System.Reflection;
namespace TestReflect
{
class BaseClass
{
public int MyFieldBase=1;
public int getfieldBase()
{ return MyFieldBase; }
}
class DerivedClass : BaseClass
{
public int MyFieldDerived=2;
public int getfieldBase(int i)
{ return MyFieldDerived; }
}
class Program
{
static void Main(string[] args)
{
Type tbc=typeof(DerivedClass);
Console.WriteLine("类型名:{0}.", tbc.Name);
Console.WriteLine("它有如下字段:");
FieldInfo[] fi = tbc.GetFields();
MethodInfo[] me = tbc.GetMethods();
foreach (var f in fi)
{
Console.WriteLine("字段类型{0},字段名{1}",f.FieldType,f.Name);
}
Console.WriteLine();
Console.WriteLine("它有如下方法:");
foreach (var f in me)
{
Console.WriteLine("返回值类型:{0},函数名:{1}",f.ReturnType ,f.Name);
ParameterInfo[] paramsInfo = f.GetParameters();
foreach (var p in paramsInfo)
{
Console.WriteLine("参数类型:{0}参数名:{1}",p.ParameterType,p.Name);
}
Console.WriteLine();
}
Console.ReadKey();
}
}
}